/* eslint-disable no-undef */
function _registerEvent(target, eventType, cb) {
const eventListener = target.addEventListener || target.attachEvent;
eventListener.call(target, eventType, cb);
return {
remove: function () {
const eventRemover = target.removeEventListener || target.detachEvent;
eventRemover.call(target, eventType, cb);
},
};
}
function openUriWithTimeoutHack(uri, failCb, successCb, timeoutDuration) {
let timeout = setTimeout(function () {
failCb();
handler.remove();
}, timeoutDuration);
let target = window;
while (target !== target.parent) {
target = target.parent;
}
let handler = _registerEvent(target, 'blur', onBlur);
function onBlur() {
clearTimeout(timeout);
handler.remove();
successCb();
}
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
document.body.appendChild(iframe);
iframe.src = uri;
}
/**
* CloudICP 22.0
* version: ICP eAPP610_TD V100R022C00SPC620
*/
var sdkVersion = "022.650.191";
var cloudICP;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], factory);
} else if (typeof exports === 'object') {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory();
} else if (this == undefined) {
window.ICPSDK = factory();
} else {
// Browser globals (root is window)
root.ICPSDK = factory();
}
}(this, function() {
/**
*
* @param {*} config {
* serverAddress: "", //eg:
* serverWSPort: "8015", //
* serverHttpPort : "9898",
* debugMode: "false",
* localMediaServiceAudioPort : "",
* localMediaServiceVideoPort : "",
* localMediaServiceWSPort : "",
* localMediaDataServiceWSPort : "",
* localDeamonServiceWSPort : "",
* sdkStatusNotify:
* }
*/
function ICPSDK(config) {
this.util = new ICPSDK_Util();
if (!config["serverAddress"] || !this.util.checkIp(config["serverAddress"])) {
this.util.log({ "logLevel": "error", "logMsg": "serverAddress is invalid" });
throw new Error("serverAddress is invalid");
return;
}
if (!config["serverDomain"]) {
config["serverDomain"] = "171.221.254.50";
}
if (undefined == config["sdkStatusNotify"] || typeof config["sdkStatusNotify"] != "function") {
this.util.log({ "logLevel": "error", "logMsg": "sdkStatusNotify is invalid" });
throw new Error("sdkStatusNotify is invalid");
return;
}
if (undefined == config["videoResizeMode"]) {
config["videoResizeMode"] = 0;
} else {
config["videoResizeMode"] = config["videoResizeMode"];
}
if (undefined == config["videoConfLocalWindow"]) {
config["videoConfLocalWindow"] = true;
} else {
config["videoConfLocalWindow"] = config["videoConfLocalWindow"];
}
if (undefined == config["demo_wssflow_enable"]) {
config["demo_wssflow_enable"] = false;
} else {
config["demo_wssflow_enable"] = config["demo_wssflow_enable"];
}
if (!config["serverWSPort"] || !this.util.checkPort(config["serverWSPort"])) {
config["serverWSPort"] = "8015";
}
if (!config["serverHttpPort"] || !this.util.checkPort(config["serverHttpPort"])) {
config["serverHttpPort"] = "8015";
}
if (!config["debugMode"] || (config["debugMode"] != "true" && config["debugMode"] != "false")) {
config["debugMode"] = "false";
}
if (!config["localMediaServiceAudioPort"] || !this.util.checkPort(config["localMediaServiceAudioPort"])) {
config["localMediaServiceAudioPort"] = "8002";
}
if (!config["localMediaServiceVideoPort"] || !this.util.checkPort(config["localMediaServiceVideoPort"])) {
config["localMediaServiceVideoPort"] = "8002";
}
if (!config["localMediaServiceWSPort"] || !this.util.checkPort(config["localMediaServiceWSPort"])) {
config["localMediaServiceWSPort"] = "17802";
}
if (!config["localMediaDataServiceWSPort"] || !this.util.checkPort(config["localMediaDataServiceWSPort"])) {
config["localMediaDataServiceWSPort"] = "17803";
}
if (!config["localDeamonServiceWSPort"] || !this.util.checkPort(config["localDeamonServiceWSPort"])) {
config["localDeamonServiceWSPort"] = "17801";
}
if (!config["mrsServerIP"] || !this.util.checkIp(config["mrsServerIP"])) {
config["mrsServerIP"] = "";
}
if (!config["mode"]) {
config["mode"] = "window";
}
if (!config["ringFlag"]) {
config["ringFlag"] = "0";
}
if (!config["HDVideoMode"]) {
config["HDVideoMode"] = false;
}
// 录音录像路径 默认为: MSP安装目录下的\data\rec目录中
if (undefined == config["localRecordPath"]) {
config["localRecordPath"] = "";
} else {
config["localRecordPath"] = config["localRecordPath"];
}
// 本地录音录像文件所在的硬盘的最小空间大小 单位 GB;
if (undefined == config["localRecordMinDiskCap"]) {
config["localRecordMinDiskCap"] = 5;
} else {
config["localRecordMinDiskCap"] = config["localRecordMinDiskCap"];
}
config["mspVersion"] = sdkVersion;
config["sdkServerHttpTimeout"] = "60000";
this.config = config;
this.loginFlag = false;
this.grpList = [];
this.grpCidList = {};
this.grpVolumeList = {};
this.dispatch = {};
this.dispatch.auth = new ICPSDK_Dispatch_Auth();
this.dispatch.event = new ICPSDK_Dispatch_Event();
this.dispatch.gis = new ICPSDK_Dispatch_GIS();
this.dispatch.sms = new ICPSDK_Dispatch_Sms();
this.dispatch.voice = new ICPSDK_Dispatch_Voice();
this.dispatch.video = new ICPSDK_Dispatch_Video();
this.dispatch.group = new ICPSDK_Dispatch_Group();
this.dispatch.webSocket = new ICPSDK_Dispatch_WebSocket();
this.dispatch.device = new ICPSDK_Dispatch_Device();
this.dispatch.query = new ICPSDK_Dispatch_Query();
this.dispatch.conf = new ICPSDK_Dispatch_Conf();
this.dispatch.broadcastinfo = new ICPSDK_Dispatch_BroadCastInfo();
this.userInfo = {
"session": "",
"isdn": "",
"sdkVersion": sdkVersion
};
this.dispatchSdkStatus = "-1";
cloudICP = this;
// 建立一个定时器,监控是否离线
setInterval(function() {
if (!navigator.onLine) {
logoutCleanUp();
var event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "3";
cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"](event);
}
}, 10 * 1000);
this.dispatch.webSocket.connectToLocalDeamon();
};
/**
* @param data {
* "status" : "" 0//sdk初始化成功; 1: sdk连接mediaserver的守护进程失败;2: sdk连接mediaserver的业务进程失败;3: sdk获取本地ip失败
* "desc" : ""
* }
*/
ICPSDK.prototype.reportDispatchSdkStatus = function(data) {
cloudICP.util.log(mainPageId, { "logLevel": "info", "logMsg": "sdkStatusNotify: sdkstatus is " + JSON.stringify(data) });
this.dispatchSdkStatus = data["status"];
if (undefined == this.config["sdkStatusNotify"] || typeof this.config["sdkStatusNotify"] != "function") {
return;
}
this.config["sdkStatusNotify"](data);
}
ICPSDK.prototype.getSdkServerUrl = function() {
return "https://" + this.config["serverDomain"] + ":" + this.config["serverHttpPort"] + "/sdkserver";
}
ICPSDK.prototype.getSdkServerWssUrl = function() {
return "wss://" + this.config["serverDomain"] + ":" + this.config["serverWSPort"] + "/sdkserver?agentVersion=2.0&wsClientID=" + cloudICP.userInfo["loginUserName"];
}
ICPSDK.prototype.getMediaServerUrl = function () {
if ((undefined == cloudICP.config["ssl_enable"]) || (cloudICP.config.ssl_enable == true)) {
return "wss://localhost.cloudicp.huawei.com:" + this.config["localMediaServiceWSPort"];
} else {
return "ws://localhost.cloudicp.huawei.com:" + this.config["localMediaServiceWSPort"];
}
}
ICPSDK.prototype.getMediaDataServerUrl = function() {
if ((undefined == cloudICP.config["ssl_enable"]) || (cloudICP.config.ssl_enable == true)) {
return "wss://localhost.cloudicp.huawei.com:" + this.config["localMediaDataServiceWSPort"];
} else {
return "ws://localhost.cloudicp.huawei.com:" + this.config["localMediaDataServiceWSPort"];
}
}
ICPSDK.prototype.getLocalDeamonUrl = function () {
if ((undefined == cloudICP.config["ssl_enable"]) || (cloudICP.config.ssl_enable == true)) {
return "wss://localhost.cloudicp.huawei.com:" + this.config["localDeamonServiceWSPort"];
} else {
return "ws://localhost.cloudicp.huawei.com:" + this.config["localDeamonServiceWSPort"];
}
}
return ICPSDK;
}));
// 普通版本该函数JSSDK不做任何处理,定义该函数只是为了避免报错
function sendEvent2Page(tabPageId, func) {
if (typeof func == 'function') {
func(func["event"]);
return true;
}
return false;
};
// 普通版本该函数JSSDK不做任何处理,定义该函数只是为了避免报错
function sendMsg2Page(tabPageId, type, param) {
return false;
};
// 普通版本该函数JSSDK不做任何处理,定义该函数只是为了避免报错
// 将消息广播给每一个页面
broadcast = function(type, jsonMsg) {
return false;
};
/**
* msp返回事件通知,UMP多窗口版本注释196610事件的创建内嵌窗口
*/
ICPSDK_Dispatch_Event.prototype.delMSPNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
switch (event["rsp"]) {
case 196612:
var retEvent = {
"eventName": "OnGetResolutionResult",
"rsp": event["result"],
"value": {
"mainScreen": event["mainScreen"],
"totalScreen": event["totalScreen"],
"screenNum": event["screenNum"]
}
}
this.EVENT_LIST["MSPNotify"]["OnGetResolutionResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnGetResolutionResult"]);
break;
case 196610:
//窗口创建成功
var videoEvent = cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["resID"].toString()];
if (undefined == videoEvent) {
if (undefined != event["userWindowId"]) { //创建用户窗口成功
cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["userWindowId"].toString()] = {};
cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["userWindowId"].toString()]["value"] = {};
cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["userWindowId"].toString()]["value"][
"windowHandle"
] = event["windowHandle"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["userWindowId"].toString()]["value"][
"windowId"
] = event["userWindowId"];
var retEvent = {
"eventName": "OnCreateWindowResult",
"rsp": event["result"].toString(),
"value": {
"userWindowId": event["userWindowId"],
"windowHandle": event["windowHandle"],
"width": event["width"],
"height": event["height"],
"posX": event["posX"],
"posY": event["posY"],
"showToolbar": event["showToolbar"],
"buttonIDs": event["buttonIDs"],
"hide": event["hide"],
"enableDrag": event["enableDrag"]
}
}
this.EVENT_LIST["MSPNotify"]["OnCreateWindowResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnCreateWindowResult"]);
}
return;
}
var value = videoEvent["value"];
//通知上层OnCallConnect事件
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[value["cid"]];
// 处理二次视频监控时call为NULL,导致返回给二开的calltype被设置为video的问题,应设置为monitor
var isRepeatMonitor = false;
if (parseInt(value["cid"]) >= 2000001001 && parseInt(value["cid"]) <= 2000002000) {
if (typeof value["cild"] == 'number') {
value["cid"] = value["cid"].toString();
}
isRepeatMonitor = true;
}
var newEvent = {
"eventName": "",
"rsp": value["rsp"],
"value": {
"callee": value["callee"],
"caller": value["caller"],
"cid": value["cid"],
"fmt": value["fmt"]
}
}
var strWssUrl = "";
var strFmtType = value["fmtType"];
if ((value["winMode"] == "wssflow") && (undefined != event["wssflowSslEnable"])) {
if (event["wssflowSslEnable"] == true) {
strWssUrl = "wss://localhost.cloudicp.huawei.com:" + event["wssflowPort"].toString();
newEvent["value"]["wssUrl"] = strWssUrl;
} else {
strWssUrl = "ws://localhost.cloudicp.huawei.com:" + event["wssflowPort"].toString();
newEvent["value"]["wssUrl"] = strWssUrl;
}
}
var bNeedNotify = true;
if ((call && call.callType == callStatusMgr.MONITOR) || isRepeatMonitor) {
newEvent["value"]["calltype"] = "monitor";
if (undefined != value["userWindowId"]) {
newEvent["value"]["userWindowId"] = value["userWindowId"];
}
} else if (call && call.callType == callStatusMgr.VIDEOCONF) {
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfConnect";
this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"]);
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "sub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnSubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"]);
} else {
cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] = true;
}
}
}
cloudICP.util.ajax(ajaxCfg);
bNeedNotify = false;
} else if (call && call.callType == callStatusMgr.VIDEODISPATCH) {
newEvent["value"]["calltype"] = "dispatch";
newEvent["value"]["src"] = value["uri"];
newEvent["value"]["direction"] = "in";
newEvent["value"]["ptz"] = value["ptz"];
newEvent["value"]["mute"] = value["mute"];
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
bNeedNotify = false;
} else {
newEvent["value"]["calltype"] = "video";
}
if (true == bNeedNotify) {
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = value["direction"];
newEvent["value"]["ptz"] = value["ptz"];
newEvent["value"]["mute"] = value["mute"];
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
}
//完成通知
var user = cloudICP.userInfo["isdn"];
var peerUser = value["callee"];
if (user == peerUser) {
peerUser = value["caller"];
}
var recvOnly = false;
if (videoEvent["value"]["camera"] != "-1" &&
videoEvent["value"]["camera"] != "0") {
recvOnly = true;
}
var iPort = -1;
var iWidth = 176;
var iHeight = 144;
if ((event["mode"] == "wssflow") && (event["wssflowPort"] != undefined)) {
iPort = parseInt(event["wssflowPort"]);
iWidth = parseInt(event["width"]);
iHeight = parseInt(event["height"]);
// ----/////////////////////////////////// 调用——start
if (!!cloudICP.config["demo_wssflow_enable"]) {
if (!window.yuvIndex) {
window.yuvIndex = 1;
} else {
window.yuvIndex++;
window.yuvIndex %= 17;
window.yuvIndex = window.yuvIndex == 0 ? 1 : window.yuvIndex;
}
const notifyMSP = function () {
console.info("调用改变分辨率接口");
};
const box = document.getElementById(`yuv-player-00${window.yuvIndex}`);
console.info('box---------', box)
var baseWidth = 16;
var baseHeight = 9;
var baseWidthHeight = parseInt(iWidth * 9 / 16);
var baseHeightWidth = parseInt(iHeight * 16 / 9);
if (baseWidthHeight <= iHeight) {
baseWidth = iWidth;
baseHeight = baseWidthHeight;
} else if (baseHeightWidth <= iWidth) {
baseWidth = baseHeightWidth;
baseHeight = iHeight;
}
box.style.width = baseWidth + 'px';
box.style.height = baseHeight + 'px';
var demo = new CREATE_PLAYER_DEMO({
wsUrl: strWssUrl,
port: iPort,
box,
sharpType: {
width: iWidth,
height: iHeight
},
cid: value["cid"],
changeCB: notifyMSP,
});
cloudICP.util.callStatusMgr.addWssflowDemoMap(event["resID"], demo);
}
// ----///////////////////////////////////——end
}
if (value && value["cid"] != undefined) {
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[value["cid"]];
if (call && call.callType == callStatusMgr.VIDEOCONF) {
recvOnly = false;
}
if (call && (call.callType == callStatusMgr.MONITOR || call.callType == callStatusMgr
.VIDEODISPATCH)) {
recvOnly = true;
}
}
cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["resID"].toString()]["hwnd"] = event[
"windowHandle"];
var bHide = false;
if (undefined != event["hide"]) {
bHide = event["hide"];
}
let localArr = value["local_video"].split(",");
let serverArr = value["server_video"].split(",");
var videoConfLocalWindow = true;
if (undefined != value["videoConfLocalWindow"]) {
videoConfLocalWindow = value["videoConfLocalWindow"];
}
if (value["rts_ssrc"] != undefined) {
if (undefined != event["repeatsMonitor"]) {
param =
"{\"description\":\"msp_create_video_channel\", \"cmd\": 65557, \"param\":{\"resID\":{0}, \"winHandle\":{9}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"fmt\":\"{7}\", \"recvOnly\":{8}, \"rtsSSrc\": {10}, \"user\":\"{11}\", \"peerUser\":\"{12}\", \"mode\":\"{13}\", \"port\":{14}, \"fmtType\":\"{15}\", \"width\": {16}, \"height\": {17}, \"videoConfLocalWindow\": {18}, \"videoResizeMode\": {19}, \"HDVideoMode\": {20} }}}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["video"]), parseInt(value["video_ssrc"]), value["fmt"], recvOnly,
parseInt(event["windowHandle"]), value["rts_ssrc"], user, peerUser, event["mode"],
iPort, strFmtType, iWidth, iHeight, videoConfLocalWindow, event["videoResizeMode"], cloudICP.config["HDVideoMode"]
);
} else if (undefined != event["userWindowId"]) {
param =
"{\"description\":\"msp_create_video_channel\", \"cmd\": 65539, \"param\":{\"resID\":{0}, \"winHandle\":{9}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"fmt\":\"{7}\", \"recvOnly\":{8}, \"rtsSSrc\": {10}, \"user\":\"{11}\", \"peerUser\":\"{12}\", \"mode\":\"{13}\", \"port\":{14}, \"fmtType\":\"{15}\", \"width\": {16}, \"height\": {17}, \"videoConfLocalWindow\": {18}, \"userWindowId\":{19}, \"videoResizeMode\": {20}, \"HDVideoMode\": {21} }}}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["video"]), parseInt(value["video_ssrc"]), value["fmt"], recvOnly,
parseInt(event["windowHandle"]), value["rts_ssrc"], user, peerUser, event["mode"],
iPort, strFmtType, iWidth, iHeight, videoConfLocalWindow, event["userWindowId"], event["videoResizeMode"], cloudICP.config["HDVideoMode"]
);
} else {
param =
"{\"description\":\"msp_create_video_channel\", \"cmd\": 65539, \"param\":{\"resID\":{0}, \"winHandle\":{9}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"fmt\":\"{7}\", \"recvOnly\":{8}, \"rtsSSrc\": {10}, \"user\":\"{11}\", \"peerUser\":\"{12}\", \"mode\":\"{13}\", \"port\":{14}, \"fmtType\":\"{15}\", \"width\": {16}, \"height\": {17}, \"videoConfLocalWindow\": {18}, \"videoResizeMode\": {19}, \"HDVideoMode\": {20} }}}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["video"]), parseInt(value["video_ssrc"]), value["fmt"], recvOnly,
parseInt(event["windowHandle"]), value["rts_ssrc"], user, peerUser, event["mode"],
iPort, strFmtType, iWidth, iHeight, videoConfLocalWindow, event["videoResizeMode"], cloudICP.config["HDVideoMode"]
);
}
} else {
if (undefined != event["repeatsMonitor"]) {
param =
"{\"description\":\"msp_create_video_channel\", \"cmd\": 65557, \"param\":{\"resID\":{0}, \"winHandle\":{9}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"fmt\":\"{7}\", \"recvOnly\":{8}, \"user\":\"{10}\", \"peerUser\":\"{11}\", \"mode\":\"{12}\", \"port\":{13}, \"fmtType\":\"{14}\", \"width\": {15}, \"height\": {16}, \"videoConfLocalWindow\": {17}, \"videoResizeMode\": {18}, \"HDVideoMode\": {19} }}}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["video"]), parseInt(value["video_ssrc"]), value["fmt"], recvOnly,
parseInt(event["windowHandle"]), user, peerUser, event["mode"], iPort, strFmtType,
iWidth, iHeight, videoConfLocalWindow, event["videoResizeMode"], cloudICP.config["HDVideoMode"]
);
} else if (undefined != event["userWindowId"]) {
param =
"{\"description\":\"msp_create_video_channel\", \"cmd\": 65539, \"param\":{\"resID\":{0}, \"winHandle\":{9}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"fmt\":\"{7}\", \"recvOnly\":{8}, \"user\":\"{10}\", \"peerUser\":\"{11}\", \"mode\":\"{12}\", \"port\":{13}, \"fmtType\":\"{14}\", \"width\": {15}, \"height\": {16}, \"videoConfLocalWindow\": {17}, \"userWindowId\":{18}, \"videoResizeMode\": {19}, \"HDVideoMode\": {20} }}}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["video"]), parseInt(value["video_ssrc"]), value["fmt"], recvOnly,
parseInt(event["windowHandle"]), user, peerUser, event["mode"], iPort, strFmtType,
iWidth, iHeight, videoConfLocalWindow, event["userWindowId"], event["videoResizeMode"], cloudICP.config["HDVideoMode"]
);
} else {
param =
"{\"description\":\"msp_create_video_channel\", \"cmd\": 65539, \"param\":{\"resID\":{0}, \"winHandle\":{9}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"fmt\":\"{7}\", \"recvOnly\":{8}, \"user\":\"{10}\", \"peerUser\":\"{11}\", \"mode\":\"{12}\", \"port\":{13}, \"fmtType\":\"{14}\", \"width\": {15}, \"height\": {16}, \"videoConfLocalWindow\": {17}, \"videoResizeMode\": {18}, \"HDVideoMode\": {19} }}}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["video"]), parseInt(value["video_ssrc"]), value["fmt"], recvOnly,
parseInt(event["windowHandle"]), user, peerUser, event["mode"], iPort, strFmtType,
iWidth, iHeight, videoConfLocalWindow, event["videoResizeMode"], cloudICP.config["HDVideoMode"]
);
}
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["resID"].toString()]["isCreateWindowComplete"] = true;
break;
case 196618:
if (undefined != event["userWindowId"]) {
var meidaSDKparam =
"{\"description\":\"msp_stop_use_userWindow\", \"cmd\": 196618, \"param\":{\"userWindowId\":{0}}}"
.format(
parseInt(event["userWindowId"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
if ("-1" == event["userWindowId"].toString()) { //清除全部媒体面时触发
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function(key) {
if (cloudICP.util.callStatusMgr.windowInfos[key]["userWindowId"] != undefined) {
delete cloudICP.util.callStatusMgr.windowInfos[key];
}
});
}
}
break;
case 131077:
var retEvent = {
"eventName": "OnGetSoundDeviceResult",
"rsp": "0",
"value": {
"speaker": event["output"],
"mic": event["input"]
}
}
this.EVENT_LIST["MSPNotify"]["OnGetSoundDeviceResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnGetSoundDeviceResult"]);
break;
case 131082:
var retEvent = {
"eventName": "OnSetRingVolumeResult",
"rsp": "0",
"value": {
"volume": event["newVolume"],
}
}
this.EVENT_LIST["MSPNotify"]["OnSetRingVolumeResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnSetRingVolumeResult"]);
break;
case 65556:
var retEvent = {
"eventName": "OnVideoStreamSPSEvent",
"value": {
"width": event["width"].toString(),
"height": event["height"].toString(),
"video": event["video"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnVideoStreamSPSEvent"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnVideoStreamSPSEvent"]);
break;
case 65555:
var retEvent = {
"eventName": "PSTNBroadcastOnceSendOverNotify",
"value": {
"cid": event["cid"].toString()
}
}
this.EVENT_LIST["VoiceNotify"]["PSTNBroadcastOnceSendOverNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["PSTNBroadcastOnceSendOverNotify"]);
break;
case 65554:
var retEvent = {
"eventName": "stop_LocalRecord",
"rsp": event["result"],
"value": {
"cid": event["cid"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnStopLocalRecordEvent"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnStopLocalRecordEvent"]);
break;
case 65553:
var retEvent = {
"eventName": "start_LocalRecord",
"rsp": event["result"],
"value": {
"cid": event["cid"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnStartLocalRecordEvent"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnStartLocalRecordEvent"]);
break;
case 65544:
var retEvent = {
"eventName": "OnGetVolumeResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"VolumeDesc": event["AudioVolume"],
"cid": event["resID"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnGetVolumeResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnGetVolumeResult"]);
break;
case 65545:
var retEvent = {
"eventName": "OnSetVolumeResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["resID"].toString(),
"Volume": event["newVolume"].toString(),
}
}
if(event["result"] == 0){
cloudICP.grpVolumeList[event["peerID"]] = event["newVolume"].toString();
}
this.EVENT_LIST["MSPNotify"]["OnSetVolumeResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnSetVolumeResult"]);
break;
case 65543:
if (event["quiet"] && event["quiet"] == true) {
var retEvent = {
"eventName": "OnMuteSpeakerResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["resID"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnMuteSpeakerResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnMuteSpeakerResult"]);
} else {
var retEvent = {
"eventName": "OnUnmuteSpeakerResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["resID"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnUnmuteSpeakerResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnUnmuteSpeakerResult"]);
}
break;
case 65546:
var retEvent = {
"eventName": "OnAssignSoundDeviceResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"outputDev": event["mediaInfo"]["outputDev"],
"inputDev": event["mediaInfo"]["inputDev"]
}
}
this.EVENT_LIST["MSPNotify"]["OnAssignSoundDeviceResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnAssignSoundDeviceResult"]);
break;
case 65547:
var retEvent = {
"eventName": "OnQuerySoundDeviceResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"devices": event["assignList"]
}
}
this.EVENT_LIST["MSPNotify"]["OnQuerySoundDeviceResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnQuerySoundDeviceResult"]);
break;
case 65542:
if (event["mute"] != undefined && event["mute"] == false) {
var retEvent = {
"eventName": "OnUnmuteMicResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["resID"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnUnmuteMicResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnUnmuteMicResult"]);
} else {
var retEvent = {
"eventName": "OnMuteMicResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["resID"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnMuteMicResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnMuteMicResult"]);
}
break;
case 65548:
cloudICP.dispatch.device.isDTMFDone = true;
var retEvent = {
"eventName": "OnSendToDTMFResult",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["resID"].toString(),
"function": event["functionCode"].toString()
}
}
this.EVENT_LIST["MSPNotify"]["OnSendToDTMFResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnSendToDTMFResult"]);
break;
case 16384: //0x4000
if (event["resID"] == undefined) return;
//不检查组呼
//其它
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["resID"]];
if (call) {
if (call.callType == callStatusMgr.VOICE ||
call.callType == callStatusMgr.VIDEO ||
call.callType == callStatusMgr.HALFVOICE ||
call.callType == callStatusMgr.DISCREET ||
call.callType == callStatusMgr.MONITOR ||
call.callType == callStatusMgr.AMBIENCE) {
var retEvent = {
"eventName": "OnCallException",
"rsp": "20000",
"value": {
"callee": call["callee"],
"caller": call["caller"],
"cid": event["resID"].toString(),
"calltype": callStatusMgr.callTypeStr[call.callType]
}
}
this.EVENT_LIST["VoiceNotify"]["OnCallException"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallException"]);
}
if (call.callType == callStatusMgr.VOICECONF ||
call.callType == callStatusMgr.VIDEOCONF) {
var retEvent = {
"eventName": "OnConfException",
"rsp": "20000",
"value": {
"cid": event["resID"].toString(),
"confId": call["confId"]
}
}
this.EVENT_LIST["PhoneConfNotify"]["OnConfException"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfException"]);
}
}
break;
case 20480: //收到点击窗口关闭按键事件
var mediaParam = cloudICP.util.callStatusMgr.mediaModeMap.get(parseInt(event["cid"]))
if (undefined != mediaParam) {
var meidaSDKparam =
"{\"description\":\"setMediaMode\", \"cmd\": 65561, \"param\":{\"cid\":{0}, \"type\":{1}, \"switch\":0}}".format(
parseInt(event["cid"]), parseInt(mediaParam["type"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
}
var resID;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"][
"repeatsMonitor"
] &&
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key].hwnd == event["windowHandle"]) {
resID = key;
}
});
if (undefined != resID) { //如果释放的是重复视频监控的业务 不支持用户窗口
if (cloudICP.util.callStatusMgr.videoMediaInfoBuf[resID]["value"]["repeatsMonitor"] == true) {
// 删除视频媒体通道
var cid = cloudICP.util.callStatusMgr.videoMediaInfoBuf[resID]["value"]["cid"];
var createReleaseTag = false;
var createId;
// 20480是JSSDK登陆时MSP返回的事件,因为是MSP主动推送的,reqId为undefined,此处设置为0
if (reqId == undefined || typeof reqId == 'undefined') {
reqId = 0;
}
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(resID), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
//通知上层OnCallRelease消息
var newEvent = {
"eventName": "",
"rsp": "3009",
"value": {}
}
newEvent["value"]["caller"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["caller"];
newEvent["value"]["callee"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["callee"];
newEvent["value"]["cid"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["cid"];
newEvent["value"]["fmt"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["fmt"];
newEvent["value"]["calltype"] = "monitor";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(newEvent["value"]);
var videoMediaWorkingInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid];
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["createId"]) {
createId = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["createId"];
}
createReleaseTag = cloudICP.util.getCopyMonitorReleaseTag(newEvent["value"]["caller"],
newEvent["value"]["callee"]);
if (undefined != videoMediaWorkingInfo) { // 该视频窗口有业务正在使用
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid];
}
if (createReleaseTag && undefined != createId) {
cloudICP.util.log(undefined, { "logLevel": "info", "logMsg": "createId : " + createId + " createReleaseTag: " + createReleaseTag });
var requestParam = {
"cid": String(createId),
"callback": function(data) {;}
};
cloudICP.dispatch.video.release(requestParam);
}
}
return;
}
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (cloudICP.util.callStatusMgr.videoMediaInfoBuf[key].hwnd == event["windowHandle"]) {
resID = key;
}
});
if (resID == undefined) {
if (undefined != event["userWindowId"] && undefined != event["isNeedDestroyWindow"] && true ==
event["isNeedDestroyWindow"]) {
// 20480是JSSDK登陆时MSP返回的事件,因为是MSP主动推送的,reqId为undefined,此处设置为0
if (reqId == undefined || typeof 'undefined') {
reqId = 0;
}
var meidaSDKparam =
"{\"description\":\"msp_delete_close_userWindow\", \"cmd\": 196613, \"param\":{\"userWindowId\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(event["userWindowId"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
if ("-1" == event["userWindowId"].toString()) { //去除用户窗被业务使用,但未创建媒体面的标记
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function(key) {
if (cloudICP.util.callStatusMgr.windowInfos[key]["userWindowId"] != undefined) {
delete cloudICP.util.callStatusMgr.windowInfos[key];
}
});
}
}
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[resID];
if (call) {
var param = {
cid: resID,
tabPageId: reqId,
callback: function(data) {
setTimeout(function() {
cloudICP.util.sendLogOut({"logLevelNum" : 1, "logMsg" : "close [" + resID + "] window rsp: " + JSON.stringify(data)});
}, 0);
}
}
if (call.callType == callStatusMgr.VIDEO || call.callType == callStatusMgr.MONITOR || call
.callType == callStatusMgr.VIDEODISPATCH) {
cloudICP.dispatch.video.release(param);
return;
}
if (call.callType == callStatusMgr.VIDEOCONF) {
var confInfo = cloudICP.util.callStatusMgr.confMgr[cloudICP.util.callStatusMgr
.currentGoingConf];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] == confInfo["value"]["confStatus"]["chair"]) {
param.confId = cloudICP.util.callStatusMgr.currentGoingConf;
cloudICP.dispatch.conf.endConf(param);
return;
}
}
cloudICP.dispatch.conf.exitVideoConf(param);
}
}
break;
case 20481:
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[event["userWindowId"].toString()];
var retEvent = {
"eventName": "OnDestroyWindowResult",
"rsp": event["result"].toString(),
"value": {
"windowHandle": event["windowHandle"]
}
}
this.EVENT_LIST["MSPNotify"]["OnDestroyWindowResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnDestroyWindowResult"]);
break;
case 196614:
var retEvent = {
"eventName": "OnWindowOnTopResult",
"rsp": event["result"],
"value": {
"cid": event["cid"],
"isOnTop": event["isOnTop"]
}
}
this.EVENT_LIST["MSPNotify"]["OnWindowOnTopResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnWindowOnTopResult"]);
break;
case 131084:
var retEvent = {
"eventName": "OnUpgradeMspVersionResult",
"rsp": event["result"],
"value": event["deamonResultParams"]
}
this.EVENT_LIST["MSPNotify"]["OnUpgradeMspVersionResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnUpgradeMspVersionResult"]);
break;
case 196615:
var retEvent = {
"eventName": "OnWindowDragEnableResult",
"rsp": event["result"],
"value": {
"cid": event["cid"],
"isDrag": event["isDrag"]
}
}
this.EVENT_LIST["MSPNotify"]["OnWindowDragEnableResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnWindowDragEnableResult"]);
break;
case 196616:
var retEvent = {
"eventName": "OnHideVideoWindowResult",
"rsp": event["result"],
"value": {
"cid": event["cid"]
}
}
this.EVENT_LIST["MSPNotify"]["OnHideVideoWindowResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnHideVideoWindowResult"]);
break;
case 196617:
var retEvent = {
"eventName": "OnWindowShowBorderResult",
"rsp": event["result"],
"value": {
"resID": event["resID"],
"border": event["border"]
}
}
this.EVENT_LIST["MSPNotify"]["OnWindowShowBorderResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnWindowShowBorderResult"]);
break;
case 258049:
var retEvent = {
"eventName": "OnWindowOperateNotify",
"rsp": event["result"],
"value": {
"cid": event["param"]["cid"],
"eventID": event["param"]["eventID"]
}
}
this.EVENT_LIST["MSPNotify"]["OnWindowOperateNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnWindowOperateNotify"]);
break;
case 258050:
var retEvent = {
"eventName": "OnDownloadProgressEvent",
"rsp": event["result"],
"value": event["param"]
}
this.EVENT_LIST["MSPNotify"]["OnDownloadProgressEvent"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnDownloadProgressEvent"]);
break;
case 258051:
var retEvent = {
"eventName": "OnDownloadProgressEvent",
"rsp": event["result"],
"value": event["param"]
}
this.EVENT_LIST["MSPNotify"]["OnDownloadProgressEvent"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnDownloadProgressEvent"]);
var retEvent = {
"eventName": "OnInstallMspEvent",
"status": "begin"
}
cloudICP.config["installMspStatus"] = "begin";
this.EVENT_LIST["MSPNotify"]["OnInstallMspEvent"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnInstallMspEvent"]);
break;
case 65559:
var infostr;
if (event["result"] == 0)
infostr = "Success";
else if (event["result"] == 6)
infostr = "Can not find windowName";
else if (event["result"] == 3)
infostr = "Can't find cid";
else if (event["result"] == 1)
infostr = "Failed,local camera not detected";
else if (event["result"] == 4)
infostr = "Failed,windowName is not visible";
var retEvent = {
"eventName": "OnStartWindowShare",
"rsp": event["result"].toString(),
"value": {
"cid": event["cid"].toString(),
"info": infostr
}
}
this.EVENT_LIST["MSPNotify"]["OnStartWindowShare"](retEvent);
break;
case 65561:
if (event["result"] == 0) {
if (event["switch"] == 1) {
cloudICP.util.callStatusMgr.addMediaModeInfo(event);
} else {
cloudICP.util.callStatusMgr.delMediaModeInfo(event);
}
}
var retEvent = {
"eventName": "OnSetMediaModeResult",
"rsp": event["result"] == 0 ? "0" : "-1"
}
this.EVENT_LIST["MSPNotify"]["OnSetMediaModeResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnSetMediaModeResult"]);
break;
case 655611:
var retEvent = {
"eventName": "OnMediaNotifyEvent",
"rsp": event["result"] == 0 ? "0" : "-1",
"value": {
"cid": event["cid"],
"format": event["format"],
"data": event["data"]
}
}
this.EVENT_LIST["MSPNotify"]["onMediaNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["onMediaNotify"]);
break;
default:
break;
}
};
/**
* @param {
* eventType:
* eventName:
* callback:
* }
*/
ICPSDK_Dispatch_Event.prototype.register = function(param) {
var eventType = param["eventType"];
var eventName = param["eventName"];
var callback = param["callback"];
if (!eventType) {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "register: register failed. Because eventType is invalid." });
return;
}
if (!eventName) {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "register: register failed. Because eventName is invalid." });
return;
}
if (typeof callback != "function") {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "register: register failed. Because callback is not a function." });
return;
}
var eventTypeObject = this.EVENT_LIST[eventType];
if (undefined == eventTypeObject) {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "register: register failed. Because eventType is invalid." });
return;
}
var eventObject = eventTypeObject[eventName];
if (undefined == eventObject) {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "register: register failed. Because eventName is invalid." });
return;
}
this.EVENT_LIST[eventType][eventName] = function(data) {
cloudICP.util.sendLogOut({"logLevelNum" : 1, "logMsg" : "ICPSDK event: " + JSON.stringify(data)});
callback(data);
}
};
ICPSDK_Dispatch_Event.prototype.printEvent = function (data) {
cloudICP.util.sendLogOut({"logLevelNum" : 1, "logMsg" : "ICPSDK event: " + JSON.stringify(data)});
};
/**
* @param cfg {
* "type" : "POST|PUT|DELETE|GET"
* "url" :
* "async" :
* "timeout" :
* "contentType" :
* "data" : //post和put请求时设置
* "callback" :
* }
*/
ICPSDK_Util.prototype.ajax = function (cfg) {
var settings = {};
settings.type = cfg.type;
settings.timeout = parseInt(cloudICP.config["sdkServerHttpTimeout"]);
settings.async = cfg.async != false;
var methodName = null;
var moduleName = null;
var user = "";
if (cfg.data) {
settings.data = JSON.stringify(cfg.data);
user = cfg.data["loginUser"];
// 打印接口发送日志
var tmpStr;
try {
throw new Error();
} catch (n) {
tmpStr = n.stack.split("\n");
}
for (var index = 0; index < tmpStr.length; index++) {
if (tmpStr[index].indexOf("ICPSDK_Dispatch") != -1) {
methodName = tmpStr[index].split(/\W/)[6];
moduleName = tmpStr[index].split(/\W/)[5];
if (moduleName != "ICPSDK_Dispatch_Event") {
cloudICP.util.sendLogOut({"logLevelNum" : 1, "logMsg" : "ICPSDK request: " + "[interface: " + methodName + ", param: " + settings.data + " ]"});
}
break;
}
}
}
settings.contentType = cfg.contentType || "application/json";
if (typeof cfg.callback === "function") {
settings.success = function (data) {
var jsonObject = JSON.parse(data);
if (undefined != jsonObject["cmd"]) {
delete jsonObject.cmd;
}
if (undefined == jsonObject["desc"]) {
jsonObject["desc"] = "";
}
if (undefined != jsonObject["list"] && jsonObject["list"] != null) {
for (var index = 0; index < jsonObject["list"].length; index++) {
if (undefined != jsonObject["list"][index]["vpnid"]) {
delete jsonObject["list"][index]["vpnid"];
}
if (undefined != jsonObject["list"][index]["vpnin"]) {
delete jsonObject["list"][index]["vpnin"];
}
if (undefined != jsonObject["list"][index]["vpnout"]) {
delete jsonObject["list"][index]["vpnout"];
}
}
}
if (undefined != jsonObject["value"] && jsonObject["value"] != null) {
if (undefined != jsonObject["value"]["vpnid"]) {
delete jsonObject["value"]["vpnid"];
}
if (undefined != jsonObject["value"]["vpnin"]) {
delete jsonObject["value"]["vpnin"];
}
if (undefined != jsonObject["value"]["vpnout"]) {
delete jsonObject["value"]["vpnout"];
}
}
if (moduleName != null && moduleName != "ICPSDK_Dispatch_Event") {
cloudICP.util.sendLogOut({"logLevelNum" : 1, "logMsg" : "ICPSDK request: " + "[interface: " + methodName + ", response: " + JSON.stringify(jsonObject) + " ]"});
}
cfg.callback(jsonObject);
}
settings.error = function (data) {
var result = {
"rsp": "-1",
"desc": "unkown exception when send request. See the brower's console."
};
cfg.callback(result);
cloudICP.util.log(undefined, { "logLevel": "error", "logMsg": "unkown exception when send request. See the brower's console." + JSON.stringify(data) });
}
} else {
settings.error = function (data) {
cloudICP.util.log(undefined, { "logLevel": "error", "logMsg": "unkown exception when send request. See the brower's console." });
}
}
settings.beforeSend = function (XMLHttpRequest) {
var session = cloudICP.userInfo["session"];
if (session) {
XMLHttpRequest.setRequestHeader("session", session);
}
if(user){
XMLHttpRequest.setRequestHeader("WS-CLIENT-ID", user);
} else {
XMLHttpRequest.setRequestHeader("WS-CLIENT-ID", cloudICP.userInfo["loginUserName"]);
}
};
settings.cache = false;
$.ajax(cfg["url"], settings);
}
ICPSDK_Dispatch_WebSocket.prototype.getModifyMdcip = function (data) {
if (0 == data["mdc_result"]) {
cloudICP.config["mdcip"] = data["mdcip"];
cloudICP.reportDispatchSdkStatus({ "status": "0", "desc": "modify mdcip success !" });
} else {
cloudICP.reportDispatchSdkStatus({ "status": "3", "desc": "modify mdcip failure !" });
}
this.getLocalIp({
callback: this.getLocalIpCallBack
});
}
function ICPSDK_Dispatch_Auth() {
this.USER_SEND_HEART_INTERVAL = 30000; //心跳间隔时间30s
this.VDM_SESSION_TOKEN_INTERVAL = 600000; //心跳间隔时间60s
this.MAX_PASSWORD_LENGTH = 18; //最大密码长度
this.errorHeartNumber = 0; //异常心跳次数
this.USER_SEND_HEART_MAX_TRY = 3; //最大尝试次数
this.sendHeartbeatTimeOutId = "";
this.vdmtokenRefresh = "";
this.sdkserverVersion = "";
};
/**
* unifiedLogin() unified Login
* @param {Object} param {
* user: ,
* password: ,
* force: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Auth.prototype.unifiedLogin = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unifiedLogin: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unifiedLogin: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (cloudICP.dispatchSdkStatus == "-1") {
result["rsp"] = "-3";
result["desc"] = "unifiedLogin: sdk is doing init. please wait";
param["callback"](result);
return;
}
if (undefined == cloudICP.config["localIP"] || "" == cloudICP.config["localIP"]) {
result["rsp"] = "-4";
result["desc"] = "unifiedLogin: sdk init failed. so cannot get localIP.";
param["callback"](result);
return;
}
if (undefined == cloudICP.config["cameraInfo"]) {
result["rsp"] = "-5";
result["desc"] = "unifiedLogin: sdk init failed. so cannot get cameraInfo.";
param["callback"](result);
return;
}
var loginParam = {};
var result = {
"rsp": "-2",
"desc": ""
};
if (!cloudICP.util.checkUserName(param["user"])) {
result["desc"] = "unifiedLogin: user is invalid";
param["callback"](result);
return;
}
if (!(param["password"] && param["password"].length >= 1 && param["password"].length <= this
.MAX_PASSWORD_LENGTH)) {
result["desc"] = "unifiedLogin: password is invalid";
param["callback"](result);
return;
}
loginParam["password"] = param["password"];
loginParam["localip"] = cloudICP.config["localIP"];
if (undefined != param["logintype"]) {
loginParam["logintype"] = param["logintype"];
}
if (param["force"] && param["force"] == "true") {
loginParam["force"] = param["force"];
}
loginParam["ringFlag"] = cloudICP.config["ringFlag"];
if (undefined != cloudICP.config["udcIP"] && undefined != cloudICP.config["udcPort"]) {
loginParam["serverip"] = cloudICP.config["udcIP"];
loginParam["serverport"] = cloudICP.config["udcPort"];
} else {
loginParam["serverip"] = "";
loginParam["serverport"] = "";
}
param["user"] = encodeURIComponent(param["user"]);
loginParam["reqId"] = tabPageId;
loginParam["loginUser"] = param["user"];
var url = cloudICP.getSdkServerUrl() + "/v1/register/" + param["user"] + "/unifilogin";
// 在登录成功后,自动注册websocket的事件通知,故要对login的callbacl进行封装
var ajaxCfg = {
"type": "PUT",
"url": url,
"async": false,
"data": loginParam,
"callback": function(data) {
if (data["rsp"] == "4011") {
logoutCleanUp();
data["rsp"] = "0";
// login success, 保存session并删除,防止暴露给用户
cloudICP.userInfo["session"] = data["session"];
if (undefined != data["session"]) {
delete data.session;
}
var urlArray = url.split("/");
// cloudICP.userInfo["isdn"] = param["isdn"];
cloudICP.userInfo["isdn"] = data["isdn"]
cloudICP.userInfo["loginUserName"] = param["user"];
// delete data["isdn"]
cloudICP.userInfo["isUnified"] = true;
cloudICP.userInfo["serverVersion"] = data["version"]
//登录成功, 启动心跳
clearTimeout(cloudICP.dispatch.auth.sendHeartbeatTimeOutId);
cloudICP.dispatch.auth.errorHeartNumber = 0;
cloudICP.dispatch.auth.sendHeartbeatTimeOutId = setTimeout(function() {
sendHeartbeat();
}, cloudICP.dispatch.auth.USER_SEND_HEART_INTERVAL);
//连接websocket
cloudICP.dispatch.webSocket.connectToSDKServer();
clearInterval(cloudICP.dispatch.auth.vdmtokenRefresh);
cloudICP.dispatch.auth.vdmtokenRefresh = setInterval(function() {
var murl = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo[
"isdn"] + "/vmdsession";
var majaxCfg = {
"type": "GET",
"url": murl,
"data": null,
"callback": function(mdata) {}
}
cloudICP.util.ajax(majaxCfg);
}, cloudICP.dispatch.auth.VDM_SESSION_TOKEN_INTERVAL);
} else if (data["rsp"] == "104") {
cloudICP.userInfo["session"] = data["session"];
}
var checkSDKServerWebSocketIsConnectedFunc = function(callback, data) {
var count = 4;
var loginWaitTime = setInterval(function() {
if (cloudICP.loginFlag) {
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": 'SDKServer WebSocket is Connected return.' });
clearInterval(loginWaitTime);
//清理无效视频相关业务的缓存
var iResult;
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function(
keyWindowInfos) {
iResult = false;
if (undefined == cloudICP.util.callStatusMgr.windowInfos[
keyWindowInfos]["cid"]) { //没有cid
delete cloudICP.util.callStatusMgr.windowInfos[
keyWindowInfos];
} else {
if ("" == JSON.stringify(cloudICP.util.callStatusMgr
.videoMediaInfoBuf) || "{}" == JSON.stringify(
cloudICP.util.callStatusMgr.videoMediaInfoBuf
)) {
iResult = true;
} else {
Object.keys(cloudICP.util.callStatusMgr
.videoMediaInfoBuf).forEach(function(key) {
if (key == cloudICP.util.callStatusMgr
.windowInfos[keyWindowInfos]["cid"]
) {
iResult = true;
return;
}
});
}
}
if (true == iResult) { //业务还没有成功
delete cloudICP.util.callStatusMgr.windowInfos[
keyWindowInfos];
}
});
callback(data);
return;
} else {
count--;
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": "SDKServer WebSocket is not Connected, count=" + count.toString() });
if (count <= 0) {
clearInterval(loginWaitTime);
callback(data);
return;
}
}
}, 1000);
};
checkSDKServerWebSocketIsConnectedFunc(param["callback"], data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* unifiedLogout() unified logout
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Auth.prototype.unifiedLogout = function(param) {
cloudICP.util.LogInputParam(param);
cloudICP.util.callStatusMgr.cleanWssflowDemoMap();
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unifiedLogout: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unifiedLogout: callback is not a function"
});
return;
}
var loginParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unifiedLogout: User not logged.";
param["callback"](result);
return;
}
if (cloudICP.userInfo["isUnified"] && !cloudICP.userInfo["isUnified"]) {
result["desc"] = "logoutFromMDC: User not logged by unifiedLogin.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/register/" + cloudICP.userInfo["isdn"] + "/unifilogout";
var logoutParam = {};
logoutParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"async": false,
"data": logoutParam,
"callback": function(data) {
//如果登出成功,清理用户信息
delete data["user"]
delete data["ipccserveripport"]
if (data["rsp"] == "4012" || data["rsp"] == "4017") {
data["rsp"] = "0";
logoutCleanUp();
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* unifiPasswordChange() change password of user
* @param {Object} param {
* user: ,
* newPassword: ,
* oldPassword: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Auth.prototype.unifiPasswordChange = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unifiPasswordChange: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unifiPasswordChange: callback is not a function"
});
return;
}
var unifiPasswordChangeParam = {};
var result = {
"rsp": "-2",
"desc": ""
};
if (!cloudICP.util.checkUserName(param["user"])) {
result["desc"] = "unifiPasswordChange: user is invalid.";
param["callback"](result);
return;
}
if (!(param["newPassword"] && param["newPassword"].length >= 1 && param["newPassword"].length <= this
.MAX_PASSWORD_LENGTH)) {
result["desc"] = "unifiPasswordChange: newPassword is invalid";
param["callback"](result);
return;
}
if (!(param["oldPassword"] && param["oldPassword"].length >= 1 && param["oldPassword"].length <= this
.MAX_PASSWORD_LENGTH)) {
result["desc"] = "unifiPasswordChange: oldPassword is invalid";
param["callback"](result);
return;
}
unifiPasswordChangeParam["newPassword"] = param["newPassword"];
unifiPasswordChangeParam["oldPassword"] = param["oldPassword"];
unifiPasswordChangeParam["reqId"] = tabPageId;
var url = cloudICP.getSdkServerUrl() + "/v1/register/" + param["user"] + "/unifipassword";
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": unifiPasswordChangeParam,
"callback": function(data) {
delete data["externs"];
delete data["isdn"];
delete data["method"];
delete data["user"];
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
ICPSDK_Dispatch_Auth.prototype.GetLoginStatus = function (param) {
cloudICP.util.LogInputParam(param);
var result = {
"rsp": "0",
"loginStatus":"1",
"session":""
};
if (param["value"] != undefined) {
param = param.value;
}
result["loginStatus"] = Boolean(cloudICP.userInfo["isUnified"])?"0":"1";
if (undefined != cloudICP.userInfo["session"]){
result["session"] = cloudICP.userInfo["session"];
}
param["callback"](result);
}
/**
* 发送心跳
*/
function sendHeartbeat() {
if (!cloudICP.userInfo["isdn"]) {
cloudICP.util.log(0, {
"logLevel": "error",
"logMsg": "sendHeartbeat: User not logged."
});
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/heartbeat/" + cloudICP.userInfo["isdn"];
var ajaxCfg = {
"type": "POST",
"url": url,
"callback": function(data) {
if (data["rsp"] == "0") {
cloudICP.dispatch.auth.errorHeartNumber = 0;
} else if (data["rsp"] == "10000") {
//鉴权失败
cloudICP.userInfo["isdn"] = "";
cloudICP.userInfo["session"] = "";
cloudICP.util.log(0, {
"logLevel": "error",
"logMsg": "sendHeartbeat: send failed. the data is " + JSON.stringify(data)
});
logoutCleanUp();
var event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "5";
cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(0, cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
return;
} else {
cloudICP.dispatch.auth.errorHeartNumber++;
cloudICP.util.log(0, {
"logLevel": "error",
"logMsg": "sendHeartbeat: send failed. the data is " + JSON.stringify(data)
});
}
if (cloudICP.dispatch.auth.errorHeartNumber > cloudICP.dispatch.auth.USER_SEND_HEART_MAX_TRY) {
logoutCleanUp();
var event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "5";
cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(0, cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
return;
}
cloudICP.dispatch.auth.sendHeartbeatTimeOutId = setTimeout(function() {
sendHeartbeat();
}, cloudICP.dispatch.auth.USER_SEND_HEART_INTERVAL);
}
}
cloudICP.util.ajax(ajaxCfg);
};
function logoutCleanUp() {
delete cloudICP.userInfo["isdn"];
cloudICP.userInfo["session"] = "";
delete cloudICP.userInfo["isUnified"];
clearTimeout(cloudICP.dispatch.auth.sendHeartbeatTimeOutId);
clearInterval(cloudICP.dispatch.auth.vdmtokenRefresh);
var callStatusMgr = cloudICP.util.callStatusMgr;
if (cloudICP.dispatch.webSocket.isMSPConflicted != true) {
// 停止振铃音
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(callStatusMgr.callingCid)
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除所有振铃
var param = "{\"description\":\"msp_clean_tone\", \"cmd\": 131076}";
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除所有通道
var param = "{\"description\":\"msp_clean_channel\", \"cmd\": 65550}";
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else {
cloudICP.dispatch.webSocket.isMSPConflicted = false;
}
callStatusMgr.cleanUp();
cloudICP.dispatch.conf.chairName = "chairman";
cloudICP.dispatch.gis.subList = [];
cloudICP.dispatch.device.isDTMFDone = true;
cloudICP.dispatch.group.current_groupcall_num = 0;
cloudICP.dispatch.group.isCurrentPtt = {
"grpid": "-1",
"isPtt": false
};
cloudICP.dispatch.video.currentVideoAbility = 0;
};
function ICPSDK_Dispatch_BroadCastInfo() {
};
/**
* startBroadCast
* @param {
* "text" :
* "toNumber" :
* callback :
* }
*/
ICPSDK_Dispatch_BroadCastInfo.prototype.startBroadCast = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "startBroadCast: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "startBroadCast: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "startBroadCast: The user does not logined";
param["callback"](result);
return;
}
var requestParam = {
"opt": "startBroadCast",
"to" : "1",
"param": {
"text" : param["text"],
"toNumber" : param["toNumber"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/broadcastInfo/" + cloudICP.userInfo["isdn"] + "/start";
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* stopBroadCast
* @param {
* "callGroup" :
* callback :
* }
*/
ICPSDK_Dispatch_BroadCastInfo.prototype.stopBroadCast = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "stopBroadCast: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "stopBroadCast: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "stopBroadCast: The user does not logined";
param["callback"](result);
return;
}
var requestParam = {
"opt": "stopBroadCast",
"to" : "1",
"param": {
"callGroup" : param["callGroup"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/broadcastInfo/" + cloudICP.userInfo["isdn"] + "/stop";
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* getBroadCastList
* @param {
* callback :
* }
*/
ICPSDK_Dispatch_BroadCastInfo.prototype.getBroadCastList = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "getBroadCastList: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "getBroadCastList: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "getBroadCastList: The user does not logined";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/broadcastInfo/" + cloudICP.userInfo["isdn"] + "/getInfo";
var ajaxCfg = {
"type": "GET",
"url": url,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
};function ICPSDK_Dispatch_Conf() {
this.MAX_CONF_ID = "9223372036854775807";
this.chairName = "chairman";
this.MAX_CONF_NUM = 1;
this.MAX_MEMBER_NUM = 244;
};
/**
* createConf
* @param {
* isVideo :
* memberInfos : [
* {
* "number":
* "name":
* "isCamera":
* "isWatchOnly"
* "h265"
* }
* ]
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.createConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "createConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "createConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!param["fmt"])
{
cloudICP.util.callStatusMgr.fmt = "1080P";
}
else
{
cloudICP.util.callStatusMgr.fmt = param["fmt"];
}
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "createConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (cloudICP.util.callStatusMgr.currentCallState == cloudICP.util.callStatusMgr.RINGING && undefined == param["time"] && undefined == param["timeZone"]) {
result["rsp"] = "-4";
result["desc"] = "createConf: There is a call is ringing."
param["callback"](result);
return;
}
var strWindowinfo = {};
if (param["windowInfo"] == undefined || undefined == param["windowInfo"]["mode"] || !cloudICP.util.checkmode(
param["windowInfo"]["mode"])) {
cloudICP.util.log(tabPageId, {
"logLevel": "warn",
"logMsg": "createConf: The mode is invalid, use defult value " + cloudICP.config["mode"]
});
strWindowinfo["mode"] = cloudICP.config["mode"];
}
if (param["windowInfo"] != undefined) {
strWindowinfo["mode"] = param["windowInfo"]["mode"];
strWindowinfo["showToolbar"] = param["windowInfo"]["showToolbar"];
strWindowinfo["buttonIDs"] = param["windowInfo"]["buttonIDs"];
strWindowinfo["posX"] = param["windowInfo"]["posX"];
strWindowinfo["posY"] = param["windowInfo"]["posY"];
strWindowinfo["width"] = param["windowInfo"]["width"];
strWindowinfo["height"] = param["windowInfo"]["height"];
strWindowinfo["videoResizeMode"] = param["windowInfo"]["videoResizeMode"];
if ("wssflow" == strWindowinfo["mode"]) { //推流模式
if (undefined !=cloudICP.util.callStatusMgr.wssflowModeCids &&
Object.keys(cloudICP.util.callStatusMgr.wssflowModeCids).length >= 16) {
result["desc"] = "createConf: the number of window in wssflow mode is greater than 16.";
param["callback"](result);
return;
}
if (undefined == param["windowInfo"]["width"] || !cloudICP.util.isNumber(param["windowInfo"][
"width"
]) || param["windowInfo"]["width"] > 2147483647 || param["windowInfo"]["width"] < 0) {
result["desc"] = "createConf: The width is invalid.";
param["callback"](result);
return;
}
if (undefined == param["windowInfo"]["height"] || !cloudICP.util.isNumber(param["windowInfo"][
"height"
]) || param["windowInfo"]["height"] > 2147483647 || param["windowInfo"]["height"] < 0) {
result["desc"] = "createConf: The height is invalid.";
param["callback"](result);
return;
}
} else if ("window" == strWindowinfo["mode"]) { //弹窗模式
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posX"])) {
result["desc"] += "createConf: The posX is invalid, use defult value 400; ";
strWindowinfo["posX"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posY"])) {
result["desc"] += "createConf: The posY is invalid, use defult value 400; ";
strWindowinfo["posY"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["width"])) {
result["desc"] += "createConf: The width is invalid, use defult value 640; ";
strWindowinfo["width"] = 640;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["height"])) {
result["desc"] += "createConf: The height is invalid, use defult value 480; ";
strWindowinfo["height"] = 480;
}
if (undefined == param["windowInfo"]["showToolbar"] || !cloudICP.util.checkshowToolbar(param[
"windowInfo"]["showToolbar"])) {
result["desc"] += "createConf: The showToolbar is invalid, use defult value 1; ";
strWindowinfo["showToolbar"] = 1;
}
if (undefined == param["windowInfo"]["buttonIDs"] || !cloudICP.util.checkbuttonIDs(param["windowInfo"][
"buttonIDs"
])) {
result["desc"] += "createConf: The buttonIDs is invalid, use defult value 0; ";
strWindowinfo["buttonIDs"] = 0;
}
} else {
result["desc"] = "createConf: The mode is invalid.";
param["callback"](result);
return;
}
} else {
strWindowinfo["showToolbar"] = 1;
strWindowinfo["buttonIDs"] = 0;
strWindowinfo["width"] = 800;
strWindowinfo["height"] = 450;
}
if (undefined == param["time"] && undefined == param["timeZone"]) {
cloudICP.util.callStatusMgr.windowInfos[2147483647] = strWindowinfo;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentGoingConf != 0 && undefined == param["time"] && undefined == param["timeZone"]) {
result["rsp"] = "-5";
result["desc"] = "createConf: The number of conf is limited to " + this.MAX_CONF_NUM;
param["callback"](result);
return;
}
if (param["isVideo"] != "false" && undefined == param["time"] && undefined == param["timeZone"]) {
if (callStatusMgr.numberOfCall[callStatusMgr.VIDEO] + callStatusMgr.numberOfCall[callStatusMgr.VIDEOCONF] >= cloudICP.dispatch.video.MAX_VIDEO_DIAL_NUM ||
cloudICP.dispatch.video.currentVideoAbility >= cloudICP.dispatch.video.MAX_VIDEO_ABILITY) {
result["rsp"] = "-7";
result["desc"] = "createConf: The ability of video conf is limited";
param["callback"](result);
return;
}
}
if (callStatusMgr.isAnyCallExisted() && undefined == param["time"] && undefined == param["timeZone"]) {
result["rsp"] = "-6";
result["desc"] = "createConf: This call is conflicted with other calls";
param["callback"](result);
return;
}
var tmpMemberInfos = param["memberInfos"].slice();
var tmpArr = []
var isHaveChairMan = false;
for (var index = 0; index < tmpMemberInfos.length; index++) {
if (tmpMemberInfos[index]["number"] == cloudICP.userInfo["isdn"]) {
isHaveChairMan = true;
} else {
if (tmpMemberInfos[index]["isWatchOnly"] == "true") {
result["rsp"] = "-2";
result["desc"] = "createConf: memberInfos is invalid";
param["callback"](result);
return;
}
}
}
if (!isHaveChairMan) {
tmpMemberInfos.push({
"number": cloudICP.userInfo["isdn"],
"name": cloudICP.dispatch.conf.chairName,
"isCamera": "false",
"isWatchOnly": "false",
"h265": "false"
});
}
for (var index = 0; index < tmpMemberInfos.length; index++) {
tmpArr.push(tmpMemberInfos[index]["number"]);
}
var retArr = cloudICP.util.findDuplicates(tmpArr);
if (retArr.length != 0) {
result["rsp"] = "-2";
result["desc"] = "createConf: memberInfos is invalid";
param["callback"](result);
return;
}
if (tmpMemberInfos.length > cloudICP.dispatch.conf.MAX_MEMBER_NUM) {
result["rsp"] = "-8";
result["desc"] = "createConf: memberInfos is out of size";
param["callback"](result);
return;
}
var requestParam = {
"opt": "create",
"param": {
"confInfo": {
"isVideo": param["isVideo"],
"isRecorded": "false",
"confrate": param["confRate"],
},
"memberInfos": tmpMemberInfos
}
};
if (undefined != param["time"]) {
requestParam["param"]["confInfo"]["time"] = param["time"];
}
if (undefined != param["timeZone"]) {
requestParam["param"]["confInfo"]["timeZone"] = param["timeZone"];
}
if (undefined != param["timeZoneName"]) {
requestParam["param"]["confInfo"]["timeZoneName"] = param["timeZoneName"];
}
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* joinConf
* @param {
* confId : ,
* fmt : ,
* unifiedAccessCode: ,
* passcode: ,
* isVideo:
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.joinConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "joinConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "joinConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "joinConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "joinConf: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isNumber(param["unifiedAccessCode"])) {
result["desc"] = "joinConf: unifiedAccessCode is invalid";
param["callback"](result);
return;
}
if (param["passcode"] != "" && !cloudICP.util.isNumber(param["passcode"])) {
result["desc"] = "joinConf: passcode is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(param["isVideo"])) {
result["desc"] = "joinConf: isVideo is invalid";
param["callback"](result);
return;
}
if (!param["fmt"]) {
param["fmt"] = "1080P";
}
var fmts = ["4K","2K","1080P", "720P", "D1", "CIF", "QCIF", "GCIF"];
if (param["fmt"] && !cloudICP.util.includes(fmts, param["fmt"])) {
result["desc"] = "joinConf: The fmt is invalid";
param["callback"](result);
return;
}
var strWindowinfo = {};
if (param["windowInfo"] == undefined || undefined == param["windowInfo"]["mode"] || !cloudICP.util.checkmode(
param["windowInfo"]["mode"])) {
cloudICP.util.log(tabPageId, {
"logLevel": "warn",
"logMsg": "joinConf: The mode is invalid, use defult value " + cloudICP.config["mode"]
});
strWindowinfo["mode"] = cloudICP.config["mode"];
}
if (param["windowInfo"] != undefined) {
strWindowinfo["mode"] = param["windowInfo"]["mode"];
strWindowinfo["showToolbar"] = param["windowInfo"]["showToolbar"];
strWindowinfo["buttonIDs"] = param["windowInfo"]["buttonIDs"];
strWindowinfo["posX"] = param["windowInfo"]["posX"];
strWindowinfo["posY"] = param["windowInfo"]["posY"];
strWindowinfo["width"] = param["windowInfo"]["width"];
strWindowinfo["height"] = param["windowInfo"]["height"];
strWindowinfo["videoResizeMode"] = param["windowInfo"]["videoResizeMode"];
if ("wssflow" == strWindowinfo["mode"]) { //推流模式
if (undefined == param["windowInfo"]["width"] || !cloudICP.util.isNumber(param["windowInfo"][
"width"
]) || param["windowInfo"]["width"] > 2147483647 || param["windowInfo"]["width"] < 0) {
result["desc"] = "joinConf: The width is invalid.";
param["callback"](result);
return;
}
if (undefined == param["windowInfo"]["height"] || !cloudICP.util.isNumber(param["windowInfo"][
"height"
]) || param["windowInfo"]["height"] > 2147483647 || param["windowInfo"]["height"] < 0) {
result["desc"] = "joinConf: The height is invalid.";
param["callback"](result);
return;
}
} else if ("window" == strWindowinfo["mode"]) { //弹窗模式
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posX"])) {
result["desc"] += "joinConf: The posX is invalid, use defult value 400; ";
strWindowinfo["posX"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posY"])) {
result["desc"] += "joinConf: The posY is invalid, use defult value 400; ";
strWindowinfo["posY"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["width"])) {
result["desc"] += "joinConf: The width is invalid, use defult value 640; ";
strWindowinfo["width"] = 640;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["height"])) {
result["desc"] += "joinConf: The height is invalid, use defult value 480; ";
strWindowinfo["height"] = 480;
}
if (undefined == param["windowInfo"]["showToolbar"] || !cloudICP.util.checkshowToolbar(param[
"windowInfo"]["showToolbar"])) {
result["desc"] += "joinConf: The showToolbar is invalid, use defult value 1; ";
strWindowinfo["showToolbar"] = 1;
}
if (undefined == param["windowInfo"]["buttonIDs"] || !cloudICP.util.checkbuttonIDs(param["windowInfo"][
"buttonIDs"
])) {
result["desc"] += "joinConf: The buttonIDs is invalid, use defult value 0; ";
strWindowinfo["buttonIDs"] = 0;
}
} else {
result["desc"] = "joinConf: The mode is invalid.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentCallState == cloudICP.util.callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "joinConf: There is a call is ringing."
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.windowInfos[param["unifiedAccessCode"]] = strWindowinfo;
if (callStatusMgr.currentGoingConf != 0) {
result["rsp"] = "-5";
result["desc"] = "joinConf: The number of conf is limited to " + this.MAX_CONF_NUM;
param["callback"](result);
return;
}
if (param["isVideo"] != "false") {
if (callStatusMgr.numberOfCall[callStatusMgr.VIDEO] + callStatusMgr.numberOfCall[callStatusMgr.VIDEOCONF] >= cloudICP.dispatch.video.MAX_VIDEO_DIAL_NUM ||
cloudICP.dispatch.video.currentVideoAbility >= cloudICP.dispatch.video.MAX_VIDEO_ABILITY) {
result["rsp"] = "-7";
result["desc"] = "joinConf: The ability of video conf is limited";
param["callback"](result);
return;
}
}
if (callStatusMgr.isAnyCallExisted()) {
result["rsp"] = "-6";
result["desc"] = "joinConf: This call is conflicted with other calls";
param["callback"](result);
return;
}
var requestParam = {
"opt": "join",
"param": {
"confId": param["confId"],
"fmt": param["fmt"],
"video_format": cloudICP.config.cameraInfo.toString(),
"audio_format": "1",
"unifiedAccessCode": param["unifiedAccessCode"],
"passcode": param["passcode"],
"isVideo": param["isVideo"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* acceptAudioConf
* @param {
* cid :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.acceptAudioConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "acceptAudioConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "acceptAudioConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "acceptAudioConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "acceptAudioConf: cid is invalid";
param["callback"](result);
return;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
result["rsp"] = "-40002";
result["desc"] = "";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentGoingConf != 0) {
result["rsp"] = "-5";
result["desc"] = "acceptAudioConf: The number of conf is limited to " + this.MAX_CONF_NUM;
param["callback"](result);
return;
}
if (callStatusMgr.connectingCallMgr[callStatusMgr.VIDEO].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.DISCREET].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.VIDEOCONF].length != 0 ) {
result["rsp"] = "-4";
result["desc"] = "acceptAudioConf: The call is conflicted with other calls"
param["callback"](result);
return;
};
var requestParam = {
"opt": "audioAccept",
"cid": param["cid"],
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* acceptVideoConf
* @param {
* cid :
* windowInfo: {
* width:
* height:
* posX:
* posY:
* }
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.acceptVideoConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "acceptVideoConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "acceptVideoConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "acceptVideoConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "acceptVideoConf: cid is invalid";
param["callback"](result);
return;
}
var strWindowinfo = {};
if (param["windowInfo"] == undefined || undefined == param["windowInfo"]["mode"] || !cloudICP.util.checkmode(
param["windowInfo"]["mode"])) {
cloudICP.util.log(tabPageId, {
"logLevel": "warn",
"logMsg": "acceptVideoConf: The mode is invalid, use defult value " + cloudICP.config["mode"]
});
strWindowinfo["mode"] = cloudICP.config["mode"];
}
if (param["windowInfo"] != undefined) {
strWindowinfo["mode"] = param["windowInfo"]["mode"];
strWindowinfo["showToolbar"] = param["windowInfo"]["showToolbar"];
strWindowinfo["buttonIDs"] = param["windowInfo"]["buttonIDs"];
strWindowinfo["posX"] = param["windowInfo"]["posX"];
strWindowinfo["posY"] = param["windowInfo"]["posY"];
strWindowinfo["width"] = param["windowInfo"]["width"];
strWindowinfo["height"] = param["windowInfo"]["height"];
strWindowinfo["videoResizeMode"] = param["windowInfo"]["videoResizeMode"];
if ("wssflow" == strWindowinfo["mode"]) { //推流模式
if (undefined == param["windowInfo"]["width"] || !cloudICP.util.isNumber(param["windowInfo"][
"width"
]) || param["windowInfo"]["width"] > 2147483647 || param["windowInfo"]["width"] < 0) {
result["desc"] = "acceptVideoConf: The width is invalid.";
param["callback"](result);
return;
}
if (undefined == param["windowInfo"]["height"] || !cloudICP.util.isNumber(param["windowInfo"]["height"]) || param["windowInfo"]["height"] > 2147483647 || param["windowInfo"]["height"] < 0) {
result["desc"] = "acceptVideoConf: The height is invalid.";
param["callback"](result);
return;
}
} else if ("window" == strWindowinfo["mode"]) {//弹窗模式
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posX"])) {
result["desc"] += "acceptVideoConf: The posX is invalid, use defult value 400; ";
strWindowinfo["posX"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posY"])) {
result["desc"] += "acceptVideoConf: The posY is invalid, use defult value 400; ";
strWindowinfo["posY"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["width"])) {
result["desc"] += "acceptVideoConf: The width is invalid, use defult value 640; ";
strWindowinfo["width"] = 640;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["height"])) {
result["desc"] += "acceptVideoConf: The height is invalid, use defult value 480; ";
strWindowinfo["height"] = 480;
}
if (undefined == param["windowInfo"]["showToolbar"] || !cloudICP.util.checkshowToolbar(param["windowInfo"]["showToolbar"])) {
result["desc"] += "acceptVideoConf: The showToolbar is invalid, use defult value 1; ";
strWindowinfo["showToolbar"] = 1;
}
if (undefined == param["windowInfo"]["buttonIDs"] || !cloudICP.util.checkbuttonIDs(param["windowInfo"]["buttonIDs"])) {
result["desc"] += "acceptVideoConf: The buttonIDs is invalid, use defult value 0; ";
strWindowinfo["buttonIDs"] = 0;
}
} else {
result["desc"] = "acceptVideoConf: The mode is invalid.";
param["callback"](result);
return;
}
strWindowinfo["iCid"] = param["cid"];
} else {
strWindowinfo["showToolbar"] = 1;
strWindowinfo["buttonIDs"] = 0;
strWindowinfo["iCid"] = param["cid"];
strWindowinfo["width"] = 1280;
strWindowinfo["height"] = 720;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
result["rsp"] = "-40002";
result["desc"] = "";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.windowInfos[param["cid"]] = strWindowinfo;
if (callStatusMgr.currentGoingConf != 0) {
result["rsp"] = "-5";
result["desc"] = "acceptVideoConf: The number of conf is limited to " + this.MAX_CONF_NUM;
param["callback"](result);
return;
}
if (callStatusMgr.connectingCallMgr[callStatusMgr.VIDEO].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.DISCREET].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.VIDEOCONF].length != 0 ) {
result["rsp"] = "-4";
result["desc"] = "acceptVideoConf: The call is conflicted with other calls"
param["callback"](result);
return;
};
var requestParam = {
"opt": "videoAccept",
"cid": param["cid"],
"param": {
"video_format": cloudICP.config.cameraInfo.toString(),
"audio_format": "1"
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* rejectAudioConf
* @param {
* cid :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.rejectAudioConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "rejectAudioConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "rejectAudioConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "rejectAudioConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "rejectAudioConf: cid is invalid";
param["callback"](result);
return;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
var str;
if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.CONNECTING) {
str = "rejectAudioConf: The cid is answered";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.HOLD) {
str = "rejectAudioConf: The cid is holded";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.RELEASE) {
str = "rejectAudioConf: The cid is ended";
} else {
str = "rejectAudioConf: The cid is invalid";
}
result["rsp"] = "-4";
result["desc"] = str;
param["callback"](result);
return;
}
var requestParam = {
"opt": "audioReject",
"cid": param["cid"],
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
// 停止振铃音
var mediaParam =
"{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(param["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RELEASE, {"value": {"cid": param["cid"]}});
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* rejectVideoConf
* @param {
* cid :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.rejectVideoConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "rejectVideoConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "rejectVideoConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "rejectVideoConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "rejectVideoConf: cid is invalid";
param["callback"](result);
return;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
var str;
if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.CONNECTING) {
str = "rejectVideoConf: The cid is answered";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.HOLD) {
str = "rejectVideoConf: The cid is holded";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.RELEASE) {
str = "rejectVideoConf: The cid is ended";
} else {
str = "rejectVideoConf: The cid is invalid";
}
result["rsp"] = "-4";
result["desc"] = str;
param["callback"](result);
return;
}
var requestParam = {
"opt": "videoReject",
"cid": param["cid"],
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
// 停止振铃音
var mediaParam =
"{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(param["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RELEASE, {"value": {"cid": param["cid"]}});
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* addConfMembers @param {
* confId :
* memberInfos : [
* {
* "number":
* "name":
* "isCamera":
* "isWatchOnly":
* "h265":
* }
* ]
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.addConfMembers = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addConfMembers: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addConfMembers: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "addConfMembers: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "addConfMembers: confId is invalid";
param["callback"](result);
return;
}
// TODO: 会议人数规格需要确认。
if (!(param["memberInfos"] && Array.isArray(param["memberInfos"]) && param["memberInfos"].length > 0)) {
result["desc"] = "addConfMembers: memberInfos is invalid";
param["callback"](result);
return;
}
var length = param["memberInfos"].length;
for (var i = 0; i < length; i++) {
var user = param["memberInfos"][i];
if (!cloudICP.util.checkIsdn(user["number"])) {
result["desc"] = "addConfMembers: number is invalid";
param["callback"](result);
return;
}
if (!user["name"]) {
result["desc"] = "addConfMembers: name is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(user["isCamera"])) {
result["desc"] = "addConfMembers: isCamera is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(user["isWatchOnly"])) {
result["desc"] = "addConfMembers: isWatchOnly is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(user["h265"])) {
result["desc"] = "addConfMembers: h265 is invalid";
param["callback"](result);
return;
}
}
var tmpArr = []
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
// 检查当前会议状态
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "addConfMembers: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "addConfMembers: The chairman is leaved.";
param["callback"](result);
return;
}
if (confInfo["confMembersStatus"] && param["memberInfos"].length + confInfo["confMembersStatus"].length > cloudICP.dispatch.conf.MAX_MEMBER_NUM) {
result["rsp"] = "-9";
result["desc"] = "addConfMembers: memberInfos is out of size";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "addConfMembers: The member is leaved.";
param["callback"](result);
return;
}
for (var index = 0; index < param["memberInfos"].length; index++) {
if (param["memberInfos"][index]["number"] == cloudICP.userInfo["isdn"]) {
result["rsp"] = "-2";
result["desc"] = "addConfMembers: memberInfos is invalid";
param["callback"](result);
return;
} else {
if (param["memberInfos"][index]["isWatchOnly"] == "true") {
result["rsp"] = "-2";
result["desc"] = "addConfMembers: memberInfos is invalid";
param["callback"](result);
return;
}
}
tmpArr.push(param["memberInfos"][index]["number"]);
var userStatus = cloudICP.util.callStatusMgr.userStatusMgr[param["memberInfos"][index]["number"]];
if (userStatus != undefined && userStatus == "4021") {
result["rsp"] = "-8";
result["desc"] = "addConfMembers: The member is rigning.";
param["callback"](result);
return;
}
}
var retArr = cloudICP.util.findDuplicates(tmpArr);
if (retArr.length != 0) {
result["rsp"] = "-2";
result["desc"] = "addConfMembers: memberInfos is invalid";
param["callback"](result);
return;
}
if (param["memberInfos"].length> cloudICP.dispatch.conf.MAX_MEMBER_NUM) {
result["rsp"] = "-9";
result["desc"] = "addConfMembers: memberInfos is out of size";
param["callback"](result);
return;
}
var requestParam = {
"opt": "addMembers",
"param": {
"confId": param["confId"],
"memberInfos": param["memberInfos"]
}
};
if (param["casConfParam"] != undefined) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* hangupConfMember @param {
* confId :
* memberInfo : {
* "number":
* }
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.hangupConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "hangupConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "hangupConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "hangupConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "hangupConfMember: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["memberInfo"]["number"])) {
result["desc"] = "hangupConfMember: number is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "hangupConfMember: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "hangupConfMember: The chairman is leaved.";
param["callback"](result);
return;
}
for (var index = 0; index < confInfo["value"]["confMembersStatus"].length; index++) {
var confMember = confInfo["value"]["confMembersStatus"][index];
if (confMember["number"] == param["memberInfo"]["number"] && (confMember["participantStatus"] == "Disconnected" ||
confMember["participantStatus"] == "Connecting")) {
result["rsp"] = "-7";
result["desc"] = "hangupConfMember: The member is disconnected or connecting.";
param["callback"](result);
return;
}
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "hangupConfMember: The member is leaved.";
param["callback"](result);
return;
}
if (param["memberInfo"]["number"] == cloudICP.userInfo["isdn"]) {
result["rsp"] = "-2";
result["desc"] = "hangupConfMember: number is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "hangupMember",
"param": {
"confId": param["confId"],
"memberInfo": param["memberInfo"]
}
};
if (param["casConfParam"] != undefined) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* callConfMember @param {
* confId :
* memberInfo :
* {
* "number":
* }
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.callConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "callConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "callConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "callConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "callConfMember: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["memberInfo"]["number"])) {
result["desc"] = "callConfMember: number is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "callConfMember: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-8";
result["desc"] = "callConfMember: The chairman is leaved.";
param["callback"](result);
return;
}
for (var index = 0; index < confInfo["value"]["confMembersStatus"].length; index++) {
var confMember = confInfo["value"]["confMembersStatus"][index];
if (confMember["number"] == param["memberInfo"]["number"] && (confMember["participantStatus"] == "Connected"
|| confMember["participantStatus"] == "Connecting")) {
result["rsp"] = "-7";
result["desc"] = "callConfMember: The member is connected or connecting.";
param["callback"](result);
return;
}
}
}
var userStatus = cloudICP.util.callStatusMgr.userStatusMgr[param["memberInfo"]["number"]];
if (userStatus != undefined && userStatus == "4021") {
result["rsp"] = "-6";
result["desc"] = "callConfMember: The member is already conference member or is ringing conference member.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-8";
result["desc"] = "callConfMember: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "recallMember",
"param": {
"confId": param["confId"],
"memberInfo": param["memberInfo"]
}
};
if (param["casConfParam"] != undefined) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* endConf @param {
* confId :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.endConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "endConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "endConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "endConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "endConf: confId is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"] + "/close/" + param["confId"];
var requestParam = {};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo) {
confInfo["isEnding"] = true;
}
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* exitAudioConf
* @param {
* cid :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.exitAudioConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "exitAudioConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "exitAudioConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "exitAudioConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "exitAudioConf: cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (call && call["caller"] != cloudICP.userInfo["isdn"] && call.callState == cloudICP.util.callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "exitAudioConf: The callee can't release a ringing call.";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[cloudICP.util.callStatusMgr.currentGoingConf];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] == confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "exitAudioConf: The chairman can't leave conf.";
param["callback"](result);
return;
}
}
var requestParam = {
"opt": "audioLeave",
"cid": param["cid"],
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "1") {
data["rsp"] = "0";
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* exitVideoConf
* @param {
* cid :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.exitVideoConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "exitVideoConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "exitVideoConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "exitVideoConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "exitVideoConf: cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (call && call["caller"] != cloudICP.userInfo["isdn"] && call.callState == cloudICP.util.callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "exitVideoConf: The callee can't release a ringing call.";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[cloudICP.util.callStatusMgr.currentGoingConf];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] == confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "exitVideoConf: The chairman can't leave conf.";
param["callback"](result);
return;
}
}
var requestParam = {
"opt": "videoLeave",
"cid": param["cid"],
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "1") {
data["rsp"] = "0";
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* muteConfMember @param {
* confId :
* isMute :
* number :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.muteConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "muteConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "muteConfMember: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(param["isMute"])) {
result["desc"] = "muteConfMember: isMute is invalid";
param["callback"](result);
return;
}
// 判断 param["isQuiet"] 是否为空,为空通过,不为空检查其值
if (param["isQuiet"] === undefined || param["isQuiet"] === null) {
} else if (!cloudICP.util.isBool(param["isQuiet"])) {
// 如果 param["isQuiet"] 有值,则判断是否为布尔值
result["desc"] = "muteConfMember: isQuiet is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["number"])) {
result["desc"] = "muteConfMember: number is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if ((cloudICP.userInfo["isdn"] != param["number"]) && (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"])) {
result["rsp"] = "-5";
result["desc"] = "muteConfMember: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "muteConfMember: The current member is leaved.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "muteConfMember: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "muteMember",
"param": {
"confId": param["confId"],
"isMute": param["isMute"],
"isQuiet":param["isQuiet"],
"number": param["number"]
}
};
if (param["casConfParam"] != undefined) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* muteConf @param {
* confId :
* isMute :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.muteConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "muteConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "muteConf: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(param["isMute"])) {
result["desc"] = "muteConf: isMute is invalid";
param["callback"](result);
return;
}
// 判断 param["isQuiet"] 是否为空,为空通过,不为空检查其值
if (param["isQuiet"] === undefined || param["isQuiet"] === null) {
} else if (!cloudICP.util.isBool(param["isQuiet"])) {
// 如果 param["isQuiet"] 有值,则判断是否为布尔值
result["desc"] = "muteConf: isQuiet is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "muteConf: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "muteConf: The chairman is leaved.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "muteConf: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "muteConf",
"param": {
"confId": param["confId"],
"isMute": param["isMute"],
"isQuiet":param["isQuiet"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* watchConfMember @param {
* confId :
* number :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.watchConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "watchConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "watchConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "watchConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "watchConfMember: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["number"])) {
result["desc"] = "watchConfMember: number is invalid";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "watchConfMember: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "watchMember",
"param": {
"confId": param["confId"],
"number": param["number"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* broadcastMixPicture @param {
* confId :
* mixPictureType :
* memberInfos : [
* {
* "number":
* }
* ]
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.broadcastMixPicture = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "broadcastMixPicture: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "broadcastMixPicture: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "broadcastMixPicture: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "broadcastMixPicture: confId is invalid";
param["callback"](result);
return;
}
if (!param["mixPictureType"]) {
result["desc"] = "broadcastMixPicture: The mixPictureType is invalid";
param["callback"](result);
return;
}
// TODO: 会议人数规格需要确认。
if (!(param["memberInfos"] && Array.isArray(param["memberInfos"]) && param["memberInfos"].length > 0)) {
result["desc"] = "broadcastMixPicture: memberInfos is invalid";
param["callback"](result);
return;
}
var length = param["memberInfos"].length;
for (var i = 0; i < length; i++) {
var user = param["memberInfos"][i];
if (!cloudICP.util.checkIsdn(user["number"])) {
result["desc"] = "broadcastMixPicture: number is invalid";
param["callback"](result);
return;
}
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "broadcastMixPicture: The permission of chairman is required.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "broadcastMixPicture: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "broadcastMix",
"param": {
"confId": param["confId"],
"mixPictureType": param["mixPictureType"],
"memberInfos": param["memberInfos"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* watchMixPicture @param {
* confId :
* mixPictureType :
* memberInfos : [
* {
* "number":
* }
* ]
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.watchMixPicture = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "watchMixPicture: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "watchMixPicture: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "watchMixPicture: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "watchMixPicture: confId is invalid";
param["callback"](result);
return;
}
if (!param["mixPictureType"]) {
result["desc"] = "watchMixPicture: The mixPictureType is invalid";
param["callback"](result);
return;
}
// TODO: 会议人数规格需要确认。
if (!(param["memberInfos"] && Array.isArray(param["memberInfos"]) && param["memberInfos"].length > 0)) {
result["desc"] = "watchMixPicture: memberInfos is invalid";
param["callback"](result);
return;
}
var length = param["memberInfos"].length;
for (var i = 0; i < length; i++) {
var user = param["memberInfos"][i];
if (!cloudICP.util.checkIsdn(user["number"])) {
result["desc"] = "watchMixPicture: number is invalid";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "watchMixPicture: The member is leaved.";
param["callback"](result);
return;
}
// 2.0会议系统进入,限制非主席调用选看多画面;3.0会议系统则放开,非主席也能调用选看多画面
if (cloudICP.util.isNumber(param["confId"])) {
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "watchMixPicture: The permission of chairman is required.";
param["callback"](result);
return;
}
}
}
var requestParam = {
"opt": "watchMix",
"param": {
"confId": param["confId"],
"mixPictureType": param["mixPictureType"],
"memberInfos": param["memberInfos"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* broadcastConfMember @param {
* confId :
* number :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.broadcastConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "broadcastConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "broadcastConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "broadcastConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "broadcastConfMember: confId is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "broadcastConfMember: The permission of chairman is required.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "broadcastConfMember: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "broadcastMember",
"param": {
"confId": param["confId"],
"number": param["number"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* cancelBroadcastConfMember @param {
* confId :
* number :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.cancelBroadcastConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelBroadcastConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelBroadcastConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "cancelBroadcastConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "cancelBroadcastConfMember: confId is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "cancelBroadcastConfMember: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "cancelBroadcastConfMember: The chairman is leaved.";
param["callback"](result);
return;
}
// 限制只能取消广播正在广播中的成员
if (confInfo["value"]["confStatus"]["broadcast"] != param["number"]) {
result["rsp"] = "-7";
result["desc"] = "cancelBroadcastConfMember: The member is not broadcasting.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "cancelBroadcastConfMember: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "cancelBroadcastMember",
"param": {
"confId": param["confId"],
"number": param["number"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* cancelBroadcastMixPicture @param {
* confId :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.cancelBroadcastMixPicture = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelBroadcastMixPicture: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelBroadcastMixPicture: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "cancelBroadcastMixPicture: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "cancelBroadcastMixPicture: confId is invalid";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-5";
result["desc"] = "cancelBroadcastMixPicture: The permission of chairman is required.";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "cancelBroadcastMixPicture: The chairman is leaved.";
param["callback"](result);
return;
}
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "cancelBroadcastMixPicture: The member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "cancelBroadcastMix",
"param": {
"confId": param["confId"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* startConfUploadWall
* @param {
* confId :
* number :
* layerInfo :
* {
* "xPos":
* "yPos":
* "width":
* "height":
* "decoder":
* "termType":
* "termName":
* }
*
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.startConfUploadWall = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "startConfUploadWall: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "startConfUploadWall: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "startConfUploadWall: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "startConfUploadWall: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["number"])) {
result["desc"] = "startConfUploadWall: number is invalid";
param["callback"](result);
return;
}
if (!param["layerInfo"]) {
result["desc"] = "startConfUploadWall: layerInfo is invalid";
param["callback"](result);
return;
}
var layerInfo = param["layerInfo"];
if (!layerInfo["xPos"] || !cloudICP.util.isNumber(layerInfo["xPos"])) {
result["desc"] = "startConfUploadWall: xPos is invalid";
param["callback"](result);
return;
}
if (!layerInfo["yPos"] || !cloudICP.util.isNumber(layerInfo["yPos"])) {
result["desc"] = "startConfUploadWall: yPos is invalid";
param["callback"](result);
return;
}
if (!layerInfo["width"] || !cloudICP.util.isNumber(layerInfo["width"])) {
result["desc"] = "startConfUploadWall: width is invalid";
param["callback"](result);
return;
}
if (!layerInfo["height"] || !cloudICP.util.isNumber(layerInfo["height"])) {
result["desc"] = "startConfUploadWall: height is invalid";
param["callback"](result);
return;
}
if (undefined == layerInfo["decoder"] || !cloudICP.util.isStrInArray(layerInfo["decoder"], ["ivs", "elte", "te", "dec", "custom"])) {
result["desc"] = "startConfUploadWall: decoder is invalid";
param["callback"](result);
return;
}
if (!layerInfo["termType"] || !cloudICP.util.isStrInArray(layerInfo["termType"], ["ivs_camera", "elte_phone", "voip", "pc", "dec_site"])) {
result["desc"] = "startConfUploadWall: termType is invalid";
param["callback"](result);
return;
}
if (!layerInfo["termName"] || !cloudICP.util.checkIsdn(layerInfo["termName"])) {
result["desc"] = "startConfUploadWall: termName is invalid";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "startConfUploadWall: The current member is leaved.";
param["callback"](result);
return;
}
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] != confInfo["value"]["confStatus"]["chair"]) {
result["rsp"] = "-7";
result["desc"] = "startConfUploadWall: The permission of chairman is required.";
param["callback"](result);
return;
}
}
var murl = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/vmdsession";
var majaxCfg = {
"type": "GET",
"url": murl,
"data": null,
"callback": function(mdata) {
if (mdata["rsp"] == "0") {
var requestParam = {
"opt": "wallStart",
"param": {
"confId": param["confId"],
"number": param["number"],
"layerInfo": param["layerInfo"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
} else {
param["callback"]({"rsp": "-1", "desc": ""});
}
}
}
cloudICP.util.ajax(majaxCfg);
};
/**
* stopConfUploadWall
* @param {
* layerID:
* termName:
* owner:
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.stopConfUploadWall = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopConfUploadWall: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopConfUploadWall: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "stopConfUploadWall: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!param["layerID"]) {
result["desc"] = "stopConfUploadWall: layerID is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["owner"])) {
result["desc"] = "stopConfUploadWall: owner is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["termName"])) {
result["desc"] = "stopConfUploadWall: termName is invalid";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "stopConfUploadWall: The member is leaved.";
param["callback"](result);
return;
}
var murl = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/vmdsession";
var majaxCfg = {
"type": "GET",
"url": murl,
"data": null,
"callback": function(mdata) {
if (mdata["rsp"] == "0") {
var requestParam = {
"opt": "wallStop",
"param": {
"layerID": param["layerID"],
"owner": param["owner"],
"termName": param["termName"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
} else {
param["callback"]({"rsp": "-1", "desc": ""});
}
}
}
cloudICP.util.ajax(majaxCfg);
};
/**
* holdConf
* @param {
* cid:
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.holdConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "holdConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "holdConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "holdConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "holdConf: The cid is invalid";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "holdConf: The current member is leaved.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "hold",
"param": {
type: "1",
cid: param["cid"],
reqId: tabPageId
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
cloudICP.util.callStatusMgr.holdMgr.push(param["cid"]);
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* unholdConf
* @param {
* cid:
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.unholdConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unholdConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "unholdConf: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unholdConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "unholdConf: The cid is invalid";
param["callback"](result);
return;
}
if (cloudICP.util.callStatusMgr.currentGoingConf == 0) {
result["rsp"] = "-6";
result["desc"] = "unholdConf: The current member is leaved.";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.numberOfCall[callStatusMgr.VIDEO] + callStatusMgr.numberOfCall[callStatusMgr.VIDEOCONF] > 0) {
result["rsp"] = "-7";
result["desc"] = "unholdConf: There is a video existed";
param["callback"](result);
return;
}
var requestParam = {
"opt": "unhold",
"param": {
type: "1",
cid: param["cid"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
cloudICP.util.callStatusMgr.holdMgr.push(param["cid"]);
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryRecordURLByConfID
* @param {
* confId:
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryRecordURLByConfID = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryRecordURLByConfID: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryRecordURLByConfID: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryRecordURLByConfID: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "queryRecordURLByConfID: The confId is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "queryRecord",
"param": {
confId: param["confId"],
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryConfListByAttendee
* @param {
* number:
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryConfListByAttendee = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryConfListByAttendee: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryConfListByAttendee: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConfListByAttendee: The user does not logined";
param["callback"](result);
return;
}
//check param valid
//result["rsp"] = "-2";
// if (!cloudICP.util.checkIsdn(param["number"])) {
// result["desc"] = "queryConfListByAttendee: The number is invalid";
// param["callback"](result);
// return;
// }
var requestParam = {
"opt": "queryByAttendee",
"param": {
number: cloudICP.userInfo["isdn"]
}
};
if (undefined != param["confID"]) {
requestParam["param"]["confID"] = param["confID"];
}
if (undefined != param["queryType"]) {
requestParam["param"]["queryType"] = param["queryType"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryVWallDisplayMatrixInfo
* @param {
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryVWallDisplayMatrixInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryVWallDisplayMatrixInfo: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryVWallDisplayMatrixInfo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryVWallDisplayMatrixInfo: The user does not logined";
param["callback"](result);
return;
}
var murl = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/vmdsession" + "?reqId=" + tabPageId;
var majaxCfg = {
"type": "GET",
"url": murl,
"data": null,
"callback": function(mdata) {
if (mdata["rsp"] == "0") {
var requestParam = {
"opt": "queryVwallDisplay",
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
} else {
param["callback"]({
"rsp": "-1",
"desc": ""
});
}
}
}
cloudICP.util.ajax(majaxCfg);
};
/**
* queryConfWallInfo
* @param {
* callback:
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryConfWallInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryConfWallInfo: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryConfWallInfo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConfWallInfo: The user does not logined";
param["callback"](result);
return;
}
var murl = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/vmdsession" + "?reqId=" + tabPageId;
var majaxCfg = {
"type": "GET",
"url": murl,
"data": null,
"callback": function(mdata) {
if (mdata["rsp"] == "0") {
var requestParam = {
"opt": "queryVwallLayer",
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
} else {
param["callback"]({
"rsp": "-1",
"desc": ""
});
}
}
}
cloudICP.util.ajax(majaxCfg);
};
/**
* setChairmanName
* @param {
* name: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.setChairmanName = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setChairmanName: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setChairmanName: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setChairmanName: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!param["name"] || typeof(param["name"]) != "string" || param["name"].length > 32) {
result["desc"] = "setChairmanName: The name is invalid";
param["callback"](result);
return;
}
cloudICP.dispatch.conf.chairName = param["name"];
param["callback"]({"rsp": "0", "desc": ""});
};
/**
* setSpokenMember
* @param {
* confId: ,
* member: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.setSpokenMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setSpokenMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setSpokenMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setSpokenMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "setSpokenMember: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["member"])) {
result["desc"] = "setSpokenMember: member is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isBool(param["isSpoken"])) {
result["desc"] = "setSpokenMember: isSpoken is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "SetSpokenMember",
"param": {
"confId": param["confId"],
"member": param["member"],
"isSpoken": param["isSpoken"]
}
};
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* delConfMember @param {
* confId :
* memberInfo : {
* "number":
* }
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.delConfMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delConfMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delConfMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "delConfMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "delConfMember: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["memberInfo"]["number"])) {
result["desc"] = "delConfMember: number is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "delMember",
"param": {
"confId": param["confId"],
"memberInfo": param["memberInfo"]
}
};
if (param["casConfParam"] != undefined) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* proxyFloorGroup
* @param {
* confId: ,
* member: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.proxyFloorGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "proxyFloorGroup: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "proxyFloorGroup: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
param["type"] = "0";
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "proxyFloorGroup: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "proxyFloorGroup: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["member"])) {
result["desc"] = "proxyFloorGroup: member is invalid";
param["callback"](result);
return;
}
if (!param["operation"] || typeof param["operation"] != "string") {
result["desc"] = "proxyFloorGroup: operation is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "proxyFloor",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* proxyFloorGateway
* @param {
* confId: ,
* member: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.proxyFloorGateway = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "proxyFloorGateway: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "proxyFloorGateway: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
param["type"] = "1";
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "proxyFloorGateway: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "proxyFloorGateway: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["member"])) {
result["desc"] = "proxyFloorGateway: member is invalid";
param["callback"](result);
return;
}
if (!param["operation"] || typeof param["operation"] != "string") {
result["desc"] = "proxyFloorGateway: operation is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "proxyFloor",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryContinuousPresenceInfo
* @param {
* confId: ,
* member: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryContinuousPresenceInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryContinuousPresenceInfo: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryContinuousPresenceInfo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryContinuousPresenceInfo: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "queryContinuousPresenceInfo: confId is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "queryContinuousPresenceInfo",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* AcceptApplyFloor
* @param {
* confId: ,
* applier: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.acceptApplyFloor = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "AcceptApplyFloor: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "AcceptApplyFloor: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "AcceptApplyFloor: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "AcceptApplyFloor: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["applier"])) {
result["desc"] = "AcceptApplyFloor: applier is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "acceptApplyFloor",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* RejectApplyFloor
* @param {
* confId: ,
* applier: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.rejectApplyFloor = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "rejectApplyFloor: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "rejectApplyFloor: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "rejectApplyFloor: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "rejectApplyFloor: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["applier"])) {
result["desc"] = "rejectApplyFloor: applier is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "rejectApplyFloor",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* applyFloor
* @param {
* confId: ,
* applier: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.applyFloor = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "applyFloor: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "applyFloor: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "applyFloor: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "applyFloor: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["applier"])) {
result["desc"] = "applyFloor: applier is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["floorType"])) {
result["desc"] = "applyFloor: floorType is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "applyFloor",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* setChairman 切换会议主席
* @param {
* confId: ,
* applier: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.setChairman = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setChairman: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setChairman: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setChairman: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "applyFloor: confId is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["applier"])) {
result["desc"] = "applyFloor: applier is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "setChairman",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* prolongConfTime 延长会议时间
* @param {
* confId: ,
* applier: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.prolongConfTime = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "prolongConfTime: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "prolongConfTime: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "prolongConfTime: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "applyFloor: confId is invalid";
param["callback"](result);
return;
}
var body = {};
Object.keys(param).forEach(function (key) {
if ("callback" != key) {
body[key] = param[key];
}
});
var requestParam = {
"opt": "prolongConf",
"param": body
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/prolong/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function (data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryVDCAddressBook 查询VDC通讯录
* @param {
* currentPage: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryVDCAddressBook = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "queryVDCAddressBook: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "queryVDCAddressBook: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryVDCAddressBook: The user does not logined";
param["callback"](result);
return;
}
var requestParam = {
"opt": "vdcaddressbook",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"]+ "/vdcaddressbook";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function (data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryConfereeAddressBook 查询与会通讯录
* @param {
* querytype: ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryConfereeAddressBook = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "queryConfereeAddressBook: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "queryConfereeAddressBook: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConfereeAddressBook: The user does not logined";
param["callback"](result);
return;
}
if (undefined == param["querytype"]) {
param["querytype"] = "users";
}
var requestParam = {
"opt": "queryaddressbook",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function (data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryConferenceList() query Conference list
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryConferenceList = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryConferenceList": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryConferenceList": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConferenceList: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var requestParam = {
"opt": "queryConferenceList",
"param": {}
};
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryConferenceInfo() query Conference list
* @param {Object} param {
* "confId": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryConferenceInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryConferenceInfo": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryConferenceInfo": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConferenceInfo: User not logged.";
param["callback"](result);
return;
}
if ("" == param["confId"] || undefined == param["confId"]) {
result["desc"] = "queryConferenceInfo: confId is null.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var body = {};
Object.keys(param).forEach(function (key) {
if ("callback" != key) {
body[key] = param[key];
}
});
var requestParam = {
"opt": "queryConferenceInfo",
"param": body
};
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* lockVideoSource 锁定视频源
* @param {
* confId: ,
* memberInfos: {
* number: ,
* isLock: ,
* }
* }
*/
ICPSDK_Dispatch_Conf.prototype.lockVideoSource = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "lockVideoSource: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "lockVideoSource: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "lockVideoSource: The user does not logined";
param["callback"](result);
return;
}
var requestParam = {
"opt": "lockVideoSource",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function (data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* lockConf 锁定会议
* @param {
* confId: ,
* isLock: ,
* }
* }
*/
ICPSDK_Dispatch_Conf.prototype.lockConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "lockConf: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "lockConf: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "lockConf: The user does not logined";
param["callback"](result);
return;
}
var requestParam = {
"opt": "lockConf",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function (data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryConferenceById 根据外部会议ID查询内部会议ID
* @param {
* confCode: ,
* requireConfCtrl: ,
* }
* }
*/
ICPSDK_Dispatch_Conf.prototype.queryConferenceById = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "queryConferenceById: param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "queryConferenceById: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConferenceById: The user does not logined";
param["callback"](result);
return;
}
var requestParam = {
"opt": "queryConferenceById",
"param": param
};
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function (data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* modConf 修改会议
* @param {
* confID: ,
* time: 预约会议时间,
* timeZone: 时区ID,
* timeZoneName: 时区名
* }
* @returns
*/
ICPSDK_Dispatch_Conf.prototype.modConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "modConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "modConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "modConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confInfo"]["confID"])) {
result["desc"] = "modConf: confId is invalid";
param["callback"](result);
return;
}
if (undefined == param["confInfo"]["time"] || undefined == param["confInfo"]["timeZone"]
|| undefined == param["confInfo"]["timeZoneName"]) {
result["desc"] = "modConf: time/timeZone/timeZoneName is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var tmpMemberInfos = param["memberInfos"].slice();
var requestParam = {
"opt": "modify",
"param": {
"confInfo": {
"isVideo": param["confInfo"]["isVideo"],
"isRecorded": "false",
"confrate": param["confInfo"]["confRate"],
"confID" : param["confInfo"]["confID"]
},
"memberInfos": tmpMemberInfos
}
};
if (undefined != param["confInfo"]["time"]) {
requestParam["param"]["confInfo"]["time"] = param["confInfo"]["time"];
}
if (undefined != param["confInfo"]["timeZone"]) {
requestParam["param"]["confInfo"]["timeZone"] = param["confInfo"]["timeZone"];
}
if (undefined != param["confInfo"]["timeZoneName"]) {
requestParam["param"]["confInfo"]["timeZoneName"] = param["confInfo"]["timeZoneName"];
}
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
};
cloudICP.util.ajax(ajaxCfg);
};
/**
* delConf
* @param {
* confId :
* callback :
* }
*/
ICPSDK_Dispatch_Conf.prototype.delConf = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delConf: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delConf: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "delConf: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "delConf: confId is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var requestParam = {
"opt": "delete",
"param": param
};
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
var confInfo = cloudICP.util.callStatusMgr.confMgr[param["confId"]]; // TODO
if (confInfo) {
confInfo["isEnding"] = true;
}
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* query cas conferences information 查询级联会议信息
* @param {*} param
* @returns
*/
ICPSDK_Dispatch_Conf.prototype.queryCasConfInfos = function(param) {
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log({ "logLevel": "error", "queryCasConfInfos": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log({ "logLevel": "error", "queryCasConfInfos": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCasConfInfos: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var requestParam = {
"opt": "queryCasConfInfos",
"param":{
"confId": param["confId"]
}
};
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* Querying the link for joining a conference 查询会议的入会链接
* @param {*} param
* @returns
*/
ICPSDK_Dispatch_Conf.prototype.queryConfURL = function(param) {
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log({ "logLevel": "error", "queryConfURL": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log({ "logLevel": "error", "queryConfURL": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryConfURL: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "joinConf: confId is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var requestParam = {
"opt": "queryConfURL",
"param":{
"confId": param["confId"]
}
};
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryOrgTree 查询组织树
* @param {*} param
* @returns
*/
ICPSDK_Dispatch_Conf.prototype.queryOrgTree = function(param) {
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log({ "logLevel": "error", "queryOrgTree": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log({ "logLevel": "error", "queryOrgTree": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryOrgTree: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var requestParam = {
"opt": "queryOrgTree",
"param":{
"placeholder": "no param needed"
}
};
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryAreaOrgInfo 查询SMC信息
* @param {*} param
* @returns
*/
ICPSDK_Dispatch_Conf.prototype.queryAreaOrgInfo = function(param) {
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log({ "logLevel": "error", "queryAreaOrgInfo": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log({ "logLevel": "error", "queryAreaOrgInfo": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryAreaOrgInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var requestParam = {
"opt": "queryAreaOrgInfo",
"param": param
};
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
function ICPSDK_Dispatch_Device() {
this.isDTMFDone = true;
};
/*
* 设置会议字幕、横幅或短消息
* {
* "opt": "setTextTips",
"param": {
"confId",
"content",
"type",
"opType",
"disPosition",
"displayType"
}
* }
*/
ICPSDK_Dispatch_Conf.prototype.setTextTips = function(param) {
cloudICP.util.LogInputParam(param); // 记录输入参数
var tabPageId = param.tabPageId;
// 处理传入的参数,若 `param["value"]` 存在则赋值给 `param`
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setTextTips: param is invalid"
});
return;
}
// 验证 callback 是否为函数
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setTextTips: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
// 检查用户是否已登录
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setTextTips: The user is not logged in";
param["callback"](result);
return;
}
// 验证 confId 是否有效
result["rsp"] = "-2";
if (!cloudICP.util.checkConfId(param["confId"])) {
result["desc"] = "setTextTips: confId is invalid";
param["callback"](result);
return;
}
// 验证 content 字段的长度是否合规
if (!param["content"] || param["content"].length > 2048) {
result["desc"] = "setTextTips: content is invalid or too long";
param["callback"](result);
return;
}
// 构建请求参数
var requestParam = {
"opt": "setTextTips",
"param": {
"confId": param["confId"],
"content": param["content"], // 设置的字幕或横幅内容
"type": param["type"] || "0", // 类型:字幕(0),横幅(1),短消息(2),默认0
"opType": param["opType"] || "SET", // 操作类型,枚举 SAVE,SET,CANCEL
"disPosition": param["disPosition"] || "1", // 位置:顶部(1),中部(2),底部(3),默认1
"displayType": param["displayType"] || "1" // 显示方式,默认从下向上
}
};
// 若有其他参数则附加
if (undefined != param["casConfParam"]) {
requestParam["param"]["casConfParam"] = param["casConfParam"];
}
// 构建请求的 URL
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId; // 添加请求ID
// 配置 AJAX 请求
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
};
// 发送请求
cloudICP.util.ajax(ajaxCfg);
};
function ICPSDK_Dispatch_Device() {
this.isDTMFDone = true;
this.recordsArr = [];
};
/**
* muteSpeaker
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.muteSpeaker = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteSpeaker: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteSpeaker: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "muteSpeaker: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "muteSpeaker: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam =
"{\"description\":\"msp_quite_audio_channel\", \"cmd\": 65543, \"param\":{\"resID\": {0}, \"quiet\":true}, \"reqId\":\"{1}\"}"
.format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* unmuteSpeaker
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.unmuteSpeaker = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unmuteSpeaker: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unmuteSpeaker: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unmuteSpeaker: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "unmuteSpeaker: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam =
"{\"description\":\"msp_quite_audio_channel\", \"cmd\": 65543, \"param\":{\"resID\": {0}, \"quiet\":false}, \"reqId\":\"{1}\"}"
.format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* muteGroup
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.muteGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "muteGroup: param is invalid" });
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "muteGroup: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "muteGroup: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "muteGroup: grpid is invalid.";
param["callback"](result);
return;
}
if(cloudICP.util.includes(cloudICP.grpList, param["grpid"])){
result["rsp"] = "-4";
result["desc"] = "muteGroup: This group has been muted.";
param["callback"](result);
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "muteGroup: This group has been muted" });
return;
}
if(undefined != cloudICP.grpCidList[param["grpid"]]){
if(cloudICP.grpCidList[param["grpid"]] != "-1"){
var meidaSDKparam = "{\"description\":\"msp_quite_audio_channel\", \"cmd\": 65543, \"param\":{\"resID\": {0}, \"peerID\": {0}, \"quiet\":true}}".format(
parseInt(cloudICP.grpCidList[param["grpid"]]), parseInt(param["grpid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
}
}
cloudICP.grpList.push(param["grpid"]);
param["callback"]({"rsp": "0", "desc": ""});
}
/**
* unmuteGroup
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.unmuteGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "unmuteGroup: param is invalid" });
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "unmuteGroup: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unmuteGroup: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "unmuteGroup: grpid is invalid.";
param["callback"](result);
return;
}
if(!cloudICP.util.includes(cloudICP.grpList, param["grpid"])){
result["rsp"] = "-4";
result["desc"] = "unmuteGroup: The Group does not muted.";
param["callback"](result);
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": "unmuteGroup: The Group does not muted" });
return;
}
if(undefined != cloudICP.grpCidList[param["grpid"]]){
if(cloudICP.grpCidList[param["grpid"]] != "-1"){
var meidaSDKparam = "{\"description\":\"msp_quite_audio_channel\", \"cmd\": 65543, \"param\":{\"resID\": {0}, \"peerID\": {0}, \"quiet\":false}}".format(
parseInt(cloudICP.grpCidList[param["grpid"]]), parseInt(param["grpid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
}
}
for (var index = 0; index < cloudICP.grpList.length; index++) {
if (cloudICP.grpList[index] == param["grpid"]) {
cloudICP.grpList.splice(index);
index--;
}
}
param["callback"]({"rsp": "0", "desc": ""});
}
/**
* setGroupVolume
* @param {Object} param {
* cid: ,
* volume: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.setGroupVolume = function (param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "setGroupVolume: param is invalid" });
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "setGroupVolume: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setGroupVolume: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!param["grpid"]) {
result["desc"] = "setGroupVolume: The grpid is invalid";
param["callback"](result);
return;
}
if (param["grpid"] != "-1") {
if (!cloudICP.util.checkGroupID(param["grpid"])) {
result["desc"] = "setGroupVolume: The grpid is invalid";
param["callback"](result);
return;
};
}
if (!param["volume"]) {
result["desc"] = "setGroupVolume: The volume is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkRate(param["volume"])) {
result["desc"] = "setGroupVolume: The volume is not number";
param["callback"](result);
return;
}
if (parseInt(param["volume"]).toString() != param['volume']) {
result["desc"] = "setGroupVolume: The volume is not Integer";
param["callback"](result);
return;
}
var meidaSDKparam = "{\"description\":\"msp_set_audio_Volume\", \"cmd\": 65545, \"param\":{\"resID\": -1, \"peerID\": {0}, \"newVolume\": {1} }}".format(
parseInt(param["grpid"]), parseFloat(param["volume"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({ "rsp": "0", "desc": "" });
};
/**
* muteMic
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.muteMic = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteMic: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "muteMic: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "muteMic: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "muteMic: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65542, \"param\":{\"resID\": {0}, \"mute\":true}, \"reqId\":\"{1}\"}"
.format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* unmuteMic
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.unmuteMic = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unmuteMic: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unmuteMic: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unmuteMic: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "unmuteMic: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65542, \"param\":{\"resID\": {0}, \"mute\":false}, \"reqId\":\"{1}\"}"
.format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* 二次拨号
*/
ICPSDK_Dispatch_Device.prototype.sendDTMF = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "sendDTMF: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "sendDTMF: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "sendDTMF: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "sendDTMF: The cid is invalid";
param["callback"](result);
return;
};
if (!param["function"]) {
result["desc"] = "sendDTMF: The function is not exist";
param["callback"](result);
return;
}
if (!cloudICP.dispatch.device.isDTMFDone) {
result["rsp"] = "-4";
result["desc"] = "sendDTMF: last operation is not finished";
param["callback"](result);
return;
} else {
cloudICP.dispatch.device.isDTMFDone = false;
}
var meidaSDKparam =
"{\"description\":\"msp_dial_again\", \"cmd\": 65548, \"param\":{\"resID\": {0}, \"functionCode\":\"{1}\"}, \"reqId\":\"{2}\"}"
.format(
parseInt(param["cid"]), param["function"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* getSoundDevice
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.getSoundDevice = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getSoundDevice: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getSoundDevice: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "getSoundDevice: The user does not logined";
param["callback"](result);
return;
}
var meidaSDKparam = "{\"description\":\"msp_get_audio_dev\", \"cmd\": 131077, \"reqId\": \"{0}\"}"
.format(
tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* getVolume
* @param {Object} param {
* cid: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.getVolume = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getVolume: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getVolume: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "getVolume: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "getVolume: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam = "{\"description\":\"msp_get_audio_volume\", \"cmd\": 65544, \"param\":{\"resID\": {0} }, \"reqId\":\"{1}\"}"
.format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* setVolume
* @param {Object} param {
* cid: ,
* volume: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.setVolume = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setVolume: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setVolume: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setVolume: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "setVolume: The cid is invalid";
param["callback"](result);
return;
};
}
if (!param["volume"]) {
result["desc"] = "setVolume: The volume is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkRate(param["volume"])) {
result["desc"] = "setVolume: The volume is not number";
param["callback"](result);
return;
}
if (parseInt(param["volume"]).toString() != param['volume']) {
result["desc"] = "setVolume: The volume is not Integer";
param["callback"](result);
return;
}
var meidaSDKparam =
"{\"description\":\"msp_set_audio_Volume\", \"cmd\": 65545, \"param\":{\"resID\": {0}, \"newVolume\": {1} }, \"reqId\":\"{2}\"}"
.format(
parseInt(param["cid"]), parseFloat(param["volume"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* setRingVolume
* @param {Object} param {
* cid: ,
* volume: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.setRingVolume = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "setRingVolume: param is invalid" });
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "logMsg": "setRingVolume: callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setRingVolume: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!param["volume"]) {
result["desc"] = "setRingVolume: The volume is invalid";
param["callback"](result);
return;
}
if(!cloudICP.util.checkRate(param["volume"])){
result["desc"] = "setRingVolume: The volume is not number";
param["callback"](result);
return;
}
if(parseInt(param["volume"]).toString() != param['volume']){
result["desc"] = "setRingVolume: The volume is not Integer";
param["callback"](result);
return;
}
var meidaSDKparam = "{\"description\":\"msp_set_ring_Volume\", \"cmd\": 131082, \"param\":{\"newVolume\": {0} }}".format(
parseFloat(param["volume"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({"rsp": "0", "desc": ""});
};
/**
* assignSoundDevice
* @param {Object} param {
* cid: ,
* number:,
* outputDev: ,
* inputDev: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.assignSoundDevice = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "assignSoundDevice: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "assignSoundDevice: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "assignSoundDevice: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "assignSoundDevice: The cid is invalid";
param["callback"](result);
return;
};
// var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
// if (!call || call.callState != cloudICP.util.callStatusMgr.CONNECTING) {
// result["desc"] = "assignSoundDevice: The cid is invalid";
// param["callback"](result);
// return;
// }
}
if (param["number"] != "conference") {
if (!cloudICP.util.checkIsdn(param["number"])) {
result["desc"] = "assignSoundDevice: The number is invalid";
param["callback"](result);
return;
}
}
if (!param["outputDev"] && !param["inputDev"]) {
result["desc"] = "assignSoundDevice: The inputDev or outputDev is invalid";
param["callback"](result);
return;
} else if (!param["outputDev"]) {
param["outputDev"] = "";
} else if (!param["inputDev"]) {
param["inputDev"] = "";
}
var meidaSDKparam =
"{\"description\":\"msp_assign_sound_device\", \"cmd\": 65546, \"param\":{\"resID\": {0}, \"number\": \"{1}\", \"mediaInfo\":{\"outputDev\":\"{2}\", \"inputDev\": \"{3}\" }}, \"reqId\":\"{4}\"}"
.format(
parseInt(param["cid"]), param["number"], param["outputDev"], param["inputDev"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* querySoundDevice
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.querySoundDevice = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "querySoundDevice: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "querySoundDevice: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "querySoundDevice: The user does not logined";
param["callback"](result);
return;
}
var meidaSDKparam = "{\"description\":\"msp_query_sound_device\", \"cmd\": 65547 , \"reqId\": \"{0}\"}"
.format(
tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* queryCameraAbility
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.queryCameraAbility = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryCameraAbility: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryCameraAbility: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameraAbility: The user does not logined";
param["callback"](result);
return;
}
if (undefined == cloudICP.config["cameraInfo"]) {
result["rsp"] = "-4";
result["desc"] = "queryCameraAbility: The camera info is lost.";
param["callback"](result);
return;
}
param["callback"]({
"rsp": "0",
"desc": "",
"camera_ability": cloudICP.config["cameraInfo"]
});
};
/**
* stopPlayTone
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.stopPlayTone = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopPlayTone: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopPlayTone: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "stopPlayTone: The user does not logined";
param["callback"](result);
return;
}
// 停止振铃
var reqParam = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\":\"{1}\"}".format(
parseInt("0"), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(reqParam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* getVersion
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.getVersion = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getVersion: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getVersion: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "getVersion: The user does not logined";
param["callback"](result);
return;
}
param["callback"]({
"rsp": "0",
"desc": "",
"versions": {
"mspVersion": cloudICP.userInfo["mspVersion"],
"sdkVersion": cloudICP.userInfo["sdkVersion"],
"serverVersion": cloudICP.userInfo["serverVersion"]
}
});
};
/**
* getMspVersion
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.getMspVersion = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getMspVersion: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getMspVersion: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
param["callback"]({
"rsp": "0",
"desc": "",
"versions": {
"mspVersion": cloudICP.userInfo["mspVersion"]
}
});
};
/**
* initMRS
* @param {Object} param {
* mrsIp: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.initMRS = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "initMRS: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "initMRS: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "initMRS: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIp(param["mrsIp"])) {
result["desc"] = "initMRS: The mrsIp is invalid";
param["callback"](result);
return;
}
// 初始化录音录像查询
var ajaxReq = {
"type": "PUT",
"url": cloudICP.getSdkServerUrl() + "/v1/register/" + cloudICP.userInfo["isdn"] + "/initmrs",
"async": false,
"data": {
"mrsServerIP": param["mrsIp"],
},
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxReq);
};
/**
* forceInit
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.forceInitMSP = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "forceInitMSP: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "forceInitMSP: callback is not a function"
});
return;
}
cloudICP.dispatch.webSocket._medisServerWs.send('ForceLogin');
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* hideVideoWindow
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.hideVideoWindow = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "hideVideoWindow: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "hideVideoWindow: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "hideVideoWindow: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam = "{\"description\":\"hide_video_window\", \"cmd\": 196616, \"param\":{\"cid\": {0}}, \"reqId\":\"{1}\"}".format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* windowOnTop
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.windowOnTop = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "windowOnTop: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "windowOnTop: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "windowOnTop: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam =
"{\"description\":\"msp_window_top\", \"cmd\": 196614, \"param\":{\"cid\": {0}, \"isOnTop\": {1}}, \"reqId\":\"{1}\"}".format(
parseInt(param["cid"]), param["isOnTop"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* windowDragEnable
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.windowDragEnable = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "windowDragEnable: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "windowDragEnable: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (param["cid"] != "-1") {
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "windowDragEnable: The cid is invalid";
param["callback"](result);
return;
};
}
var meidaSDKparam =
"{\"description\":\"msp_window_set_enable_drag\", \"cmd\": 196615, \"param\":{\"cid\": {0}, \"isDrag\": {1}}, \"reqId\":\"{2}\"}"
.format(
parseInt(param["cid"]), param["isDrag"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* showWindowBorder
* @param {Object} param {
* resID: ,
* border: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.showWindowBorder = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getResolution: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getResolution: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "initMRS: The user does not logined";
param["callback"](result);
return;
}
if (!param["resID"] && !param["cid"]) {
result["desc"] = "monitorVideo: The resID is invalid";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var meidaSDKparam = {
"description": "show_window_border",
"cmd": 196617,
"param": param
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* setWindowInfo
* @param {Object} param {
* cid:,
* windowInfo: {
* width:
* height:
* posX:
* posY:
* },
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.setWindowInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setWindowInfo: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setWindowInfo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "initMRS: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "setWindowInfo: The cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (call && call.callState != cloudICP.util.callStatusMgr.CONNECTING) {
result["desc"] = "setWindowInfo: The cid is invalid";
param["callback"](result);
return;
}
var videoInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["cid"]];
if (videoInfo == undefined) {
result["desc"] = "setWindowInfo: The cid is invalid";
param["callback"](result);
return;
}
if (param["windowInfo"] != undefined) {
if (!cloudICP.util.isNumber(param["windowInfo"]["width"]) || param["windowInfo"]["width"] > 2147483647) {
result["desc"] = "setWindowInfo: The width is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isNumber(param["windowInfo"]["height"]) || param["windowInfo"]["width"] > 2147483647) {
result["desc"] = "setWindowInfo: The height is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isNumber(param["windowInfo"]["posX"]) || param["windowInfo"]["width"] > 2147483647) {
result["desc"] = "setWindowInfo: The posX is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.isNumber(param["windowInfo"]["posY"]) || param["windowInfo"]["width"] > 2147483647) {
result["desc"] = "setWindowInfo: The posY is invalid";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (undefined != callStatusMgr.windowInfos[param["cid"]]) {
callStatusMgr.windowInfos[param["cid"]]["width"] = param["windowInfo"]["width"];
callStatusMgr.windowInfos[param["cid"]]["height"] = param["windowInfo"]["height"];
callStatusMgr.windowInfos[param["cid"]]["posX"] = param["windowInfo"]["posX"];
callStatusMgr.windowInfos[param["cid"]]["posY"] = param["windowInfo"]["posY"];
}
var windowInfo = param["windowInfo"];
}
var meidaSDKparam =
"{\"description\":\"modify_window\", \"cmd\": 196611, \"param\":{\"cid\": {0}, \"width\": {1}, \"height\": {2}, \"x\": {3}, \"y\": {4}}, \"reqId\":\"{5}\"}"
.format(
parseInt(param["cid"]), parseInt(windowInfo["width"]), parseInt(windowInfo["height"]), parseInt(
windowInfo["posX"]), parseInt(windowInfo["posY"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* getResolution
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.getResolution = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getResolution: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "getResolution: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "initMRS: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var meidaSDKparam = "{\"description\":\"get_screen_resolution\", \"cmd\": 196612, \"param\":{}, \"reqId\": \"{0}\"}"
.format(
tabPageId
);
cloudICP.dispatch.webSocket.sendDataToDeamonSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* 截图
*/
ICPSDK_Dispatch_Device.prototype.snapshot = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "snapshot: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "snapshot: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "snapshot: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "snapshot: The cid is invalid";
param["callback"](result);
return;
};
if (!param["SnapshotPath"]) {
result["desc"] = "snapshot: The SnapshotPath is not exist";
param["callback"](result);
return;
}
if (!param["SnapshotFormat"]) {
param["SnapshotFormat"] = "bmp"
}
// 截图
var meidaSDKparam =
"{\"description\":\"msp_snapshot\", \"cmd\": 65552, \"param\":{\"cid\": {0}, \"SnapshotPath\": \"{1}\", \"SnapshotFormat\":\"{2}\"}, \"reqId\":\"{3}\"}"
.format(
parseInt(param["cid"]), param["SnapshotPath"], param["SnapshotFormat"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* 设置本地录音录像存储路径
*/
ICPSDK_Dispatch_Device.prototype.setLocalRecordParam = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId;
if (undefined == param.tabPageId){
tabPageId = 0;
} else {
tabPageId = param.tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setLocalRecordParam: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setLocalRecordParam: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setLocalRecordParam: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var localRecordPath = "";
var localRecordMinDiskCap;
if (undefined != param["localRecordPath"]) {
localRecordPath = param["localRecordPath"];
} else {
localRecordPath = cloudICP.config["localRecordPath"];
}
if (undefined != param["localRecordMinDiskCap"]) {
localRecordMinDiskCap = param["localRecordMinDiskCap"];
} else {
localRecordMinDiskCap = cloudICP.config["localRecordMinDiskCap"];
}
localRecordPath = localRecordPath.replaceAll('\\','/');
// 设置本地录音录像存储路径
var meidaSDKparam =
"{\"description\":\"set_LocalRecordParam\", \"cmd\": 65558, \"param\":{\"localRecordPath\":\"{0}\",\"localRecordMinDiskCap\":{1}, \"userId\":\"{2}\"}, \"reqId\":\"{3}\"}"
.format( localRecordPath, localRecordMinDiskCap, cloudICP.userInfo["isdn"], tabPageId);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
function handleSetLocalRecordCallbackMsg(data) {
var backMsg = {};
backMsg["rsp"] = data["result"];
backMsg["desc"] = "";
if (5 == data["result"]) {
backMsg["desc"] = "setRecordMinDiskCap failed: Actual free disk space is insufficient.";
}
else if(0 == data["result"]) {
backMsg["desc"] = "";
}
param["callback"](backMsg);
}
cloudICP.dispatch.webSocket._mediaSdkRspFuncs["65558"] = handleSetLocalRecordCallbackMsg;
}
/**
* 开始录音录像
*/
ICPSDK_Dispatch_Device.prototype.startLocalRecord = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId;
if (undefined == param.tabPageId){
tabPageId = 0;
} else {
tabPageId = param.tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "startLocalRecord: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "startLocalRecord: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "startLocalRecord: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "startLocalRecord: The cid is invalid";
param["callback"](result);
return;
};
if (-1 < cloudICP.dispatch.device.recordsArr.indexOf(param["cid"])) {
result["rsp"] = "3";
result["desc"] = "startLocalRecord: The current recording task is in progress.";
param["callback"](result);
return;
}
if (!param["Type"]) {
result["desc"] = "startLocalRecord: The Type is not exist";
param["callback"](result);
return;
}
// 开始录像
var meidaSDKparam =
"{\"description\":\"start_LocalRecord\", \"cmd\": 65553, \"param\":{\"cid\": {0}, \"Type\": {1}, \"autoDelete\": {2}, \"userId\":\"{3}\"}, \"reqId\":\"{3}\"}"
.format(
parseInt(param["cid"]), param["Type"], param["autoDelete"], cloudICP.userInfo["isdn"],tabPageId
);
function handleStartLocalRecordCallbackMsg(data) {
var backMsg = {};
var iNum = cloudICP.dispatch.device.recordsArr.indexOf(param["cid"]);
backMsg["rsp"] = data["result"];
backMsg["desc"] = "";
if (3 == data["result"]) {
backMsg["desc"] = "The business conversation does not exist.";
cloudICP.dispatch.device.recordsArr.splice(iNum,1);
}else if(8 == data["result"]){
backMsg["desc"] = "Insufficient partition space of the local hard disk.";
cloudICP.dispatch.device.recordsArr.splice(iNum,1);
}
param["callback"](backMsg);
}
cloudICP.dispatch.webSocket._mediaSdkRspFuncs["65553"] = handleStartLocalRecordCallbackMsg;
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
cloudICP.dispatch.device.recordsArr.push(param["cid"]);
}
/**
* 关闭录音录像
*/
ICPSDK_Dispatch_Device.prototype.stopLocalRecord = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId;
if (undefined == param.tabPageId){
tabPageId = 0;
} else {
tabPageId = param.tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopLocalRecord: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopLocalRecord: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "stopLocalRecord: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "stopLocalRecord: The cid is invalid";
param["callback"](result);
return;
};
var iNum = cloudICP.dispatch.device.recordsArr.indexOf(param["cid"]);
if (-1 == iNum) {
result["rsp"] = "3";
result["desc"] = "stopLocalRecord: Not recording task of this cid in progress.";
param["callback"](result);
return;
}
var meidaSDKparam =
"{\"description\":\"stop_LocalRecord\", \"cmd\": 65554, \"param\":{\"cid\": {0}}, \"reqId\":\"{1}\"}".format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
cloudICP.dispatch.device.recordsArr.splice(iNum,1);
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* playAudioShortMsg
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.playAudioShortMsg = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "playAudioShortMsg: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "playAudioShortMsg: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
result["rsp"] = "-2";
if (!param["audioMsg"]) {
result["desc"] = "The audioMsg is invalid";
param["callback"](result);
return;
}
var meidaSDKparam =
"{\"description\":\"msp_play_audio_shortMsg\", \"cmd\": 131081, \"param\":{\"audioMsg\": \"{0}\"}, \"reqId\":\"{1}\"}".format(
param["audioMsg"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* createWindow 创建用户视频窗口
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.createWindow = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param || undefined == param["windowInfo"]) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "createWindow: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "createWindow: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] += "The user does not logined";
param["callback"](result);
return;
}
if (undefined == param["windowInfo"]["width"] || !cloudICP.util.isNumber(param["windowInfo"]["width"]) || param[
"windowInfo"]["width"] > 2147483647) {
result["desc"] += "createWindow: The width is invalid, use defult value 400; ";
param["windowInfo"]["width"] = 400;
}
if (undefined == param["windowInfo"]["height"] || !cloudICP.util.isNumber(param["windowInfo"]["height"]) ||
param["windowInfo"]["height"] > 2147483647) {
result["desc"] += "createWindow: The height is invalid, use defult value 225; ";
param["windowInfo"]["height"] = 225;
}
if (undefined == param["windowInfo"]["posX"] || !cloudICP.util.isNumber(param["windowInfo"]["posX"]) || param[
"windowInfo"]["posX"] > 2147483647) {
result["desc"] += "createWindow: The posX is invalid, use defult value 400; ";
param["windowInfo"]["posX"] = 400;
}
if (undefined == param["windowInfo"]["posY"] || !cloudICP.util.isNumber(param["windowInfo"]["posY"]) || param[
"windowInfo"]["posY"] > 2147483647) {
result["desc"] += "createWindow: The posY is invalid, use defult value 400; ";
param["windowInfo"]["posY"] = 400;
}
if (undefined == param["windowInfo"]["showToolbar"] || !cloudICP.util.isNumber(param["windowInfo"][
"showToolbar"
]) || param["windowInfo"]["showToolbar"] > 255) {
result["desc"] += "createWindow: The showToolbar is invalid, use defult value 1; ";
param["windowInfo"]["showToolbar"] = 1;
}
if (undefined == param["windowInfo"]["buttonIDs"] || !cloudICP.util.isNumber(param["windowInfo"][
"buttonIDs"
]) || param["windowInfo"]["buttonIDs"] > 255) {
result["desc"] += "createWindow: The buttonIDs is invalid, use defult value 0; ";
param["windowInfo"]["buttonIDs"] = 0;
}
if (undefined == param["windowInfo"]["hide"]) {
result["desc"] += "createWindow: The hide is invalid, use defult value false; ";
param["windowInfo"]["hide"] = false;
}
if (undefined == param["windowInfo"]["enableDrag"]) {
result["desc"] += "createWindow: The enableDrag is invalid, use defult value true; ";
param["windowInfo"]["enableDrag"] = true;
}
result["rsp"] = "-2";
var userWindowId = cloudICP.util.getUserWindowId();
var userWindowName = "";
if (!param["windowInfo"]["windowName"]) {
userWindowName = userWindowId.toString();
}
var iResult = cloudICP.util.checkUserWindowId(userWindowId, "create");
if (0 == iResult) {
result["desc"] = "createWindow: The userWindowId is invalid";
param["callback"](result);
return;
} else if (2 == iResult) {
result["desc"] = "createWindow: The userWindowId is used, created user window.";
param["callback"](result);
return;
}
var videoResizeMode = cloudICP.config["videoResizeMode"];
if (undefined != param["windowInfo"]["videoResizeMode"]) {
videoResizeMode = param["windowInfo"]["videoResizeMode"];
}
var meidaSDKparam =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"userWindowId\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"showToolbar\": {7}, \"buttonIDs\": {8}, \"hide\":{9}, \"enableDrag\":{10} }, \"reqId\": \"{11}\", \"videoResizeMode\": {12} }"
.format(
userWindowId, userWindowName, "window", param["windowInfo"]["width"], param["windowInfo"]["height"],
param["windowInfo"]["posX"], param["windowInfo"]["posY"],
param["windowInfo"]["showToolbar"], param["windowInfo"]["buttonIDs"], param["windowInfo"]["hide"],
param["windowInfo"]["enableDrag"], tabPageId, videoResizeMode
)
result["rsp"] = 0;
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"](result);
};
/**
* destroyWindow 释放用户创建的视频窗口
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.destroyWindow = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param && undefined == param["userWindowId"]) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "destroyWindow: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "destroyWindow: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var iResult = cloudICP.util.checkUserWindowId(param["userWindowId"], "destroy");
if (0 == iResult) {
result["desc"] = "destroyWindow: The userWindowId is invalid";
param["callback"](result);
return;
}
var resID = undefined;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["userWindowId"] &&
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["userWindowId"] == param[
"userWindowId"]) {
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["isNeedDestroyWindow"] = true;
resID = key;
}
});
if (resID == undefined) { //用户窗口还没有建立媒体面
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["userWindowId"].toString()]) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["userWindowId"].toString()][
"value"
]["cid"]) {
var cid = cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["userWindowId"].toString()]["value"][
"cid"
];
if (undefined != cloudICP.util.callStatusMgr.windowInfos[cid.toString()]) {
delete cloudICP.util.callStatusMgr.windowInfos[cid.toString()];
}
}
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["userWindowId"].toString()][
"value"
]["to"]) {
var to = cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["userWindowId"].toString()]["value"][
"to"
];
if (undefined != cloudICP.util.callStatusMgr.windowInfos[to.toString()]) {
delete cloudICP.util.callStatusMgr.windowInfos[to.toString()];
}
}
}
var meidaSDKparam =
"{\"description\":\"msp_delete_close_userWindow\", \"cmd\": 196613, \"param\":{\"userWindowId\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(param["userWindowId"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
return;
};
//关闭窗口上的业务
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[resID];
if (call) {
var param = {
cid: resID,
callback: function(data) {
setTimeout(function() {
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": "close [" + resID + "] window rsp: " + JSON.stringify(data) });
}, 0);
}
}
if (call.callType == callStatusMgr.VIDEO || call.callType == callStatusMgr.MONITOR || call.callType ==
callStatusMgr.VIDEODISPATCH) {
cloudICP.dispatch.video.release(param);
return;
}
if (call.callType == callStatusMgr.VIDEOCONF) {
var confInfo = cloudICP.util.callStatusMgr.confMgr[cloudICP.util.callStatusMgr.currentGoingConf];
if (confInfo != undefined) {
if (cloudICP.userInfo["isdn"] == confInfo["value"]["confStatus"]["chair"]) {
param.confId = cloudICP.util.callStatusMgr.currentGoingConf;
cloudICP.dispatch.conf.endConf(param);
return;
}
}
cloudICP.dispatch.conf.exitVideoConf(param);
}
}
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* ringType
* @param {
* ringType: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Device.prototype.ringType = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ringType: param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ringType: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "ringType: User not logged.";
param["callback"](result);
return;
};
var result = {
"rsp": "-2",
"desc": ""
};
if (!param["ringType"] || typeof(param["ringType"]) != "string" || (param["ringType"] != "0" && param[
"ringType"] != "1")) {
result["desc"] = "ringType: The ringType is invalid";
param["callback"](result);
return;
}
cloudICP.util.ringType = param["ringType"];
param["callback"]({
"rsp": "0",
"desc": ""
});
}
/**
* setLinkedPhone() set linked phone isnd
* @param {Object} param {
* "phoneIsdn": ,
* "linkMode": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Device.prototype.setLinkedPhone = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"setLinkedPhone": "param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"setLinkedPhone": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setLinkedPhone: User not logged.";
param["callback"](result);
return;
};
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["phoneIsdn"])) {
result["desc"] = "setLinkedPhone: The phoneIsdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/linkphone";
var resParam = {
"opt": "set",
"param": {
"phoneISDN": param["phoneIsdn"],
"linkedMode": param["linkMode"]
}
};
resParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* setMediaMode() set isMediaDataPassthrough
* @param {Object} param {
* "cid": ,
* "type": ,
* "switch": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Device.prototype.setMediaMode = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "callback is not a function"
});
return;
}
var result = {
"rsp": "-2",
"desc": ""
};
if (!cloudICP.util.callStatusMgr.checkIsExist(param)) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setMediaMode :A resource already exists."
});
result["desc"] = "A resource already exists.";
param["callback"](result);
return;
}
var meidaSDKparam =
"{\"description\":\"setMediaMode\", \"cmd\": 65561, \"param\":{\"cid\":{0}, \"type\":{1}, \"switch\":{2}}, \"reqId\":\"{3}\"}".format(
parseInt(param["cid"]), parseInt(param["type"]), parseInt(param["switch"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* getAllWindowName() get all visible window name
* @param {Object} param {
* no param needed
* }
*/
ICPSDK_Dispatch_Device.prototype.getAllWindowName = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
var meidaSDKparam =
"{\"description\":\"get_all_window_name\", \"cmd\": 196619, \"param\":{}, \"reqId\":\"{0}\"}".format(
tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* startWindowShare() will start share the window
* @param {Object} param {
* cid:
* windowName:
* }
*/
ICPSDK_Dispatch_Device.prototype.startWindowShare = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
var meidaSDKparam =
"{\"description\":\"start_window_share\", \"cmd\": 65559, \"param\":{\"cid\":{0}, \"windowName\":\"{1}\"}, \"reqId\":\"{2}\"}".format(
parseInt(param["cid"]), param["windowName"], tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* stopWindowShare() will stop share the window
* @param {Object} param {
* cid:
* }
*/
ICPSDK_Dispatch_Device.prototype.stopWindowShare = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
var meidaSDKparam =
"{\"description\":\"stop_window_share\", \"cmd\": 65560, \"param\":{\"cid\":{0}}, \"reqId\":\"{1}\"}".format(
parseInt(param["cid"]), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
/**
* checkMSPIsInstall() check msp is install
* @param {Object} param {
* "mdcip": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Device.prototype.checkMSPIsInstall = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (undefined == param || undefined == param.mdcip || !cloudICP.util.checkIp(param.mdcip)) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"checkMSPIsInstall": "param is invalid"
});
return;
}
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"checkMSPIsInstall": "callback is not a function"
});
return;
}
var strUrl = "http://" + param.mdcip + ":8009/mspversion/" + cloudICP.config.mspVersion + "/eSDK_ICP_MSP.zip";
var strVersion = "MSP_V" + cloudICP.config.mspVersion + ".zip";
cloudICP.config.hasExeCheckMsp = true;
cloudICP.config.setMDCIP = param.mdcip;
try {
setTimeout(() => {
openUriWithTimeoutHack(//检测视频插件MSP是否安装、运行
'myapp://', //myapp 是已注册的自定义协议
() => {
var checkMspBtnObj = document.getElementById("check-msp-btn-msg");
var messageElement = document.getElementById('open-msp-result-message');
if (checkMspBtnObj) {
$("#check-msp-btn-msg").text("MSP插件未安装");
}
if (messageElement) {
messageElement.innerHTML = '检测结果:'
+ ' MSP 插件未安装。请下载、安装MSP插件: ' + '' + strVersion + '';
}
param.callback({
"isInstall" : false,
"downloadUrl" : strUrl
});
},
() => {
var checkMspBtnObj = document.getElementById("check-msp-btn-msg");
var messageElement = document.getElementById('open-msp-result-message');
if (checkMspBtnObj) {
$("#check-msp-btn-msg").text("MSP插件已安装");
}
if (messageElement) {
messageElement.innerHTML = '检测结果:' + 'MSP 插件已安装。';
}
param.callback({
"isInstall" : true
});
},
2000
);
}, 100);
} catch(e) {}
};
/**
* UpgradeMspVersion will Upgrading the MSP Version
* @param {Object} param {
* downloadUrl:
* }
*/
ICPSDK_Dispatch_Device.prototype.UpgradeMspVersion = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "UpgradeMspVersion: param is invalid"
});
return;
}
if (undefined == param["downloadUrl"] || "" == param["downloadUrl"]) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "UpgradeMspVersion: downloadUrl is invalid."
});
result["desc"] = "UpgradeMspVersion: downloadUrl is invalid.";
param["callback"](result);
return;
}
if (undefined == param["downloadDir"] || "" == param["downloadDir"]) {
param["downloadDir"] = "C:\\\\dc_temp"
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "UpgradeMspVersion: callback is not a function."
});
return;
}
var meidaSDKparam =
"{\"description\":\"upgrade_msp_version\", \"cmd\": {0}, \"param\":{\"downloadUrl\":\"{1}\", \"reqId\":\"{2}\", \"downloadDir\":\"{3}\", \"local_ip\":\"{4}\"}}".format(
0x2000C, param["downloadUrl"], tabPageId, param["downloadDir"], cloudICP.config["localIP"]
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
param["callback"]({
"rsp": "0",
"desc": ""
});
};
function ICPSDK_Dispatch_Event() {
this.EVENT_LIST = {
"VoiceNotify": {
"OnUserStatusNotify": this.printEvent,
"OnDialOutProceeding": this.printEvent,
"OnDialOutRinging": this.printEvent,
"OnCallConnect": this.printEvent,
"OnDialOutFailure": this.printEvent,
"OnCallRelease": this.printEvent,
"OnDialInRinging": this.printEvent,
"OnConnectProceeding": this.printEvent,
"OnHalfDialConnectProceeding": this.printEvent,
"OnStartRecvHalfDial": this.printEvent,
"OnStopRecvHalfDial": this.printEvent,
"OnTransferReject": this.printEvent,
"OnTransferAccept": this.printEvent,
"OnTransferSuccess": this.printEvent,
"OnTransferFailure": this.printEvent,
"OnTransferNotify": this.printEvent,
"OnTalkingEmergencyCallStart": this.printEvent,
"OnCancelTransferFailure": this.printEvent,
"OnCancelTransferSuccess": this.printEvent,
"OnHalfDuplexPTTAccept": this.printEvent,
"OnHalfDialFailure": this.printEvent,
"OnBreakOffFailure": this.printEvent,
"OnBreakOffSuccess": this.printEvent,
"OnHalfDialSuccess": this.printEvent,
"OnStartDiscreetlistenSuccess": this.printEvent,
"OnStartDiscreetlistenFailure": this.printEvent,
"OnStopDiscreetlistenSuccess": this.printEvent,
"OnStopDiscreetlistenFailure": this.printEvent,
"OnDiscreetlistenStart": this.printEvent,
"OnDiscreetlistenStop": this.printEvent,
"OnHoldSuccess": this.printEvent,
"OnHoldFailure": this.printEvent,
"OnUnholdSuccess": this.printEvent,
"OnUnholdFailure": this.printEvent,
"OnInterceptSuccess": this.printEvent,
"OnInterceptFailure": this.printEvent,
"OnCallException": this.printEvent,
"OnReceiveDTMF": this.printEvent,
"MRSInfoNotify": this.printEvent,
"OnLinkedPhoneNotify": this.printEvent,
"PSTNBroadcastOnceSendOverNotify": this.printEvent,
"OnTalkingPrempted": this.printEvent,
},
"VideoNotify": {
"OnVideoDispatchRequest": this.printEvent,
"OnVideoDispatchFailure": this.printEvent,
"OnVideoDispatchSuccess": this.printEvent,
"OnVideoDispatchStatusNotify": this.printEvent,
"OnCancelVideoDispatchSuccess": this.printEvent,
"OnCancelVideoDispatchFailure": this.printEvent,
"OnStartVideoUploadWallSuccess": this.printEvent,
"OnStartVideoUploadWallFailure": this.printEvent,
"OnStopVideoUploadWallSuccess": this.printEvent,
"OnStopVideoUploadWallFailure": this.printEvent,
},
"GroupCallNotify": {
"OnGroupCallStatusNotify": this.printEvent,
"OnTalkingGroupCallFailure": this.printEvent,
"OnTalkingGroupCallPTTStart": this.printEvent,
"OnTalkingGroupCallPTTNotify": this.printEvent,
"OnTalkingGroupCallPTTSuccess": this.printEvent,
"OnTalkingGroupCallPTTIdle": this.printEvent,
"OnTalkingGroupCallPTTRecv": this.printEvent,
"OnTalkingGroupCallStart": this.printEvent,
"OnTalkingGroupCallStop": this.printEvent,
"OnTalkingGroupCallRelease": this.printEvent,
"OnTalkingGroupCallPTTFailure": this.printEvent,
"OnTalkingGroupCallJoinNotify": this.printEvent,
"OnAddTalkingGroupTempUserSuccess": this.printEvent,
"OnAddTalkingGroupTempUserFailure": this.printEvent,
"OnTalkingGourpEmergencyCallStart": this.printEvent,
"OnTalkingGroupEmergencyCallUpdate": this.printEvent,
"OnQueryPDTGroupSuccess": this.printEvent,
"OnQueryPDTGroupFailure": this.printEvent,
"OnSetListenGroupSuccess": this.printEvent,
"OnSetListenGroupFailure": this.printEvent,
"GroupMRSInfoNotify": this.printEvent,
},
"GroupNotify": {
"OnTalkingGroupStatusChange": this.printEvent,
"OnTalkingGroupMemberChange": this.printEvent,
"OnDynamicGroupMemberChange": this.printEvent,
"OnDynamicGroupChangeSuccess": this.printEvent,
"OnChangePatchGroupFailure": this.printEvent,
"OnPatchGroupStatusChange": this.printEvent,
"OnPatchGroupMemberChange": this.printEvent,
"OnDynamicGroupMemberChangeFailure": this.printEvent,
"OnDynamicGroupOptFailed": this.printEvent,
"OnPatchGroupOptFailed": this.printEvent,
"OnPatchGroupOptSuccess": this.printEvent,
"OnChangePatchGroupMemberFailure": this.printEvent,
"OnChangePatchGroupMemberSucess": this.printEvent,
"OnTalkingGroupMemberChangeFailure": this.printEvent
},
"MsNotify": {
"OnSendDispSMSResult": this.printEvent,
"OnRecvDispSMSNotify": this.printEvent,
"OnDispSMSModuleNotify": this.printEvent,
"OnSendDispMMSResult": this.printEvent,
"OnRecvDispMMSNotify": this.printEvent,
"OnDispMMSModuleNotify": this.printEvent,
"OnRecvStateMsgNotify": this.printEvent
},
"GisNotify": {
"OnSubscribeGISResult": this.printEvent,
"OnUnSubscribeGISResult": this.printEvent,
"OnRecvGISNotify": this.printEvent,
"OnRecvGISTrackNotify":this.printEvent
},
"BroadcastInfoNotify": {
"OnStartCallResult": this.printEvent,
"OnEndCallResult": this.printEvent,
"OnQueryBroadcastInfoListNotify": this.printEvent
},
"ResourceNotify": {
"OnPushConnectSuccess": this.printEvent,
"OnPushConnectFail": this.printEvent,
"OnPushGetTokenFail": this.printEvent,
"ResultOfMappingBetweenIsdn2Gbid": this.printEvent
},
"ModuleNotify": {
"OnDisConnection": this.printEvent,
"OnConnection": this.printEvent,
"OnDispatchKickOutNotifyEvent": this.printEvent,
"OnModifyPasswordNotify": this.printEvent,
"OnDeleteAccountNotify": this.printEvent,
"OnSetLinkedPhoneSuccess": this.printEvent,
"OnSetLinkedPhoneFailure": this.printEvent
},
"PhoneConfNotify": {
"OnCreateConfSuccess": this.printEvent,
"OnCreateConfFailure": this.printEvent,
"OnEndConfSuccess": this.printEvent,
"OnEndConfFailure": this.printEvent,
"OnSubscribeConfSuccess": this.printEvent,
"OnSubscribeConfFailure": this.printEvent,
"OnUnsubscribeConfSuccess": this.printEvent,
"OnUnsubscribeConfFailure": this.printEvent,
"OnConfDialInRinging": this.printEvent,
"OnConfDialOutRinging": this.printEvent,
"OnConfConnect": this.printEvent,
"OnConfRelease": this.printEvent,
"OnConfFailure": this.printEvent,
"OnMuteConfMemberSuccess": this.printEvent,
"OnMuteConfMemberFailure": this.printEvent,
"OnUnmuteConfMemberSuccess": this.printEvent,
"OnUnmuteConfMemberFailure": this.printEvent,
"OnSetSpokenMemberSuccess": this.printEvent,
"OnSetSpokenMemberFailure": this.printEvent,
"OnMuteConfSuccess": this.printEvent,
"OnMuteConfFailure": this.printEvent,
"OnUnmuteConfSuccess": this.printEvent,
"OnUnmuteConfFailure": this.printEvent,
"OnBroadcastMixPictureSuccess": this.printEvent,
"OnBroadcastMixPictureFailure": this.printEvent,
"OnCancelBroadcastMixPictureSuccess": this.printEvent,
"OnCancelBroadcastMixPictureFailure": this.printEvent,
"OnBroadcastConfMemberSuccess": this.printEvent,
"OnBroadcastConfMemberFailure": this.printEvent,
"OnCancelBroadcastConfMemberSuccess": this.printEvent,
"OnCancelBroadcastConfMemberFailure": this.printEvent,
"OnWatchConfMemberSuccess": this.printEvent,
"OnWatchConfMemberFailure": this.printEvent,
"OnConfTextTipsSuccess": this.printEvent,
"OnConfTextTipsFailure":this.printEvent,
"OnWatchMixPictureSuccess": this.printEvent,
"OnWatchMixPictureFailure": this.printEvent,
"OnHangupConfMemberSuccess": this.printEvent,
"OnHangupConfMemberFailure": this.printEvent,
"OnCallConfMemberSuccess": this.printEvent,
"OnCallConfMemberFailure": this.printEvent,
"OnHoldConfSuccess": this.printEvent,
"OnHoldConfFailure": this.printEvent,
"OnUnholdConfSuccess": this.printEvent,
"OnUnholdConfFailure": this.printEvent,
"OnConfStatusNotify": this.printEvent,
"OnQueryConfListByAttendeeResult": this.printEvent,
"OnQueryRecordURLByConfIDResult": this.printEvent,
"OnQueryVWallDisplayMatrixInfoResult": this.printEvent,
"OnQueryConfWallInfoResult": this.printEvent,
"OnStartConfUploadWallSuccess": this.printEvent,
"OnStartConfUploadWallFailure": this.printEvent,
"OnStopConfUploadWallSuccess": this.printEvent,
"OnStopConfUploadWallFailure": this.printEvent,
"OnAddConfMembersSuccess": this.printEvent,
"OnAddConfMembersFailure": this.printEvent,
"OnQueryVDCAddressBookSuccess": this.printEvent,
"OnQueryVDCAddressBookFailure": this.printEvent,
"OnQueryConfereeAddressBookSuccess": this.printEvent,
"OnQueryConfereeAddressBookFailure": this.printEvent,
"OnConfException": this.printEvent,
"OnDelConfMembersSuccess": this.printEvent,
"OnDelConfMembersFailure": this.printEvent,
"OnConfProxyFloorSuccess": this.printEvent,
"OnConfProxyFloorFailure": this.printEvent,
"OnQueryContinuousPresenceInfoResult": this.printEvent,
"OnApplyFloor": this.printEvent,
"OnConfSetChairmanSuccess": this.printEvent,
"OnConfSetChairmanFailure": this.printEvent,
"OnConfProlongTimeSuccess": this.printEvent,
"OnConfProlongTimeFailure": this.printEvent,
"OnConfLockVideoSourceSuccess": this.printEvent,
"OnConfLockVideoSourceFailure": this.printEvent,
"OnConfUnLockVideoSourceSuccess": this.printEvent,
"OnConfUnLockVideoSourceFailure": this.printEvent,
"OnConfLockConfSuccess": this.printEvent,
"OnConfLockConfFailure": this.printEvent,
"OnConfUnLockConfSuccess": this.printEvent,
"OnConfUnLockConfFailure": this.printEvent,
"OnRecvConfListNotifySuccess": this.printEvent,
"OnRecvConfListNotifyFailure": this.printEvent,
"OnQueryConferenceByIdSuccess": this.printEvent,
"OnQueryConferenceByIdFailure": this.printEvent,
"OnModifyConfSuccess": this.printEvent,
"OnModifyConfFailure": this.printEvent,
"OnQueryCasConfInfosSuccess": this.printEvent,
"OnQueryCasConfInfosFailure": this.printEvent,
"OnQueryOrgTreeSuccess": this.printEvent,
"OnQueryOrgTreeFail": this.printEvent,
"OnQueryAreaOrgInfoSuccess": this.printEvent,
"OnQueryAreaOrgInfoFail": this.printEvent,
"OnQueryConfURLSuccess": this.printEvent,
"OnQueryConfURLFailure": this.printEvent,
"OnRecvQueryConfInfoNotifySuccess": this.printEvent,
"OnRecvQueryConfInfoNotifyFailure": this.printEvent,
},
"MSPNotify": {
"OnGetSoundDeviceResult": this.printEvent,
"OnGetVolumeResult": this.printEvent,
"OnSetVolumeResult": this.printEvent,
"OnSetRingVolumeResult": this.printEvent,
"OnMuteSpeakerResult": this.printEvent,
"OnUnmuteSpeakerResult": this.printEvent,
"OnMuteMicResult": this.printEvent,
"OnUnmuteMicResult": this.printEvent,
"OnQuerySoundDeviceResult": this.printEvent,
"OnAssignSoundDeviceResult": this.printEvent,
"OnSendToDTMFResult": this.printEvent,
"OnVDMStatusNotify": this.printEvent,
"OnGetResolutionResult": this.printEvent,
"OnHideVideoWindowResult": this.printEvent,
"OnWindowOnTopResult": this.printEvent,
"OnWindowDragEnableResult": this.printEvent,
"OnWindowShowBorderResult": this.printEvent,
"OnWindowOperateNotify": this.printEvent,
"OnDownloadProgressEvent": this.printEvent,
"OnInstallMspEvent": this.printEvent,
"OnUpgradeMspVersionResult": this.printEvent,
"OnUpdateMsp": this.printEvent,
"OnCreateWindowResult": this.printEvent,
"OnDestroyWindowResult": this.printEvent,
"OnVideoStreamSPSEvent": this.printEvent,
"OnStartLocalRecordEvent": this.printEvent,
"OnStopLocalRecordEvent": this.printEvent,
"OnMspInstallRunStatus": this.printEvent,
"OnStartWindowShare": this.printEvent,
"OnSetMediaModeResult": this.printEvent,
"onMediaNotify": this.printEvent,
}
};
};
/**
* 处理GIS的业务通知
* @param event
*/
ICPSDK_Dispatch_Event.prototype.delGisNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var opt = event["opt"];
if (undefined != opt) {
delete event.opt;
}
if (opt == "sub") {
// 订阅
for (var item = 0; item < event["uelist"].length; item++) {
if (event["uelist"][item]["rsp"] == "0" && !cloudICP.util.includes(cloudICP.dispatch.gis.subList, event[
"uelist"][item]["isdn"])) {
cloudICP.dispatch.gis.subList.push(event["uelist"][item]["isdn"]);
}
}
event["eventName"] = "OnSubscribeGISResult";
this.EVENT_LIST["GisNotify"]["OnSubscribeGISResult"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["GisNotify"]["OnSubscribeGISResult"]);
} else if (opt == "unsub") {
// 取消订阅
for (var item = 0; item < event["uelist"].length; item++) {
if (event["uelist"][item]["rsp"] == "0" && cloudICP.util.includes(cloudICP.dispatch.gis.subList, event[
"uelist"][item]["isdn"])) {
var index = cloudICP.dispatch.gis.subList.indexOf(event["uelist"][item]["isdn"]);
if (index != -1) {
cloudICP.dispatch.gis.subList.splice(index, 1);
}
}
}
event["eventName"] = "OnUnSubscribeGISResult";
this.EVENT_LIST["GisNotify"]["OnUnSubscribeGISResult"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["GisNotify"]["OnUnSubscribeGISResult"]);
} else if (opt == "report") {
// 上报通知
for (var item = 0; item < event["list"].length; item++) {
if (!cloudICP.util.includes(cloudICP.dispatch.gis.subList, event["list"][item]["isdn"])) {
event["list"].splice(item, 1);
}
}
if (event["list"].length == 0) {
return;
}
event["eventName"] = "OnRecvGISNotify";
this.EVENT_LIST["GisNotify"]["OnRecvGISNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["GisNotify"]["OnRecvGISNotify"]);
} else if (opt == "track") {
event["eventName"] = "OnRecvGISTrackNotify";
this.EVENT_LIST["GisNotify"]["OnRecvGISTrackNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["GisNotify"]["OnRecvGISTrackNotify"]);
} else {
cloudICP.util.log(undefined, { "logLevel": "error", "logMsg": "delGisNotify: unkown opt. the opt is." + opt });
return;
}
}
/**
* 处理三方广播的结果通知
* @param event
*/
ICPSDK_Dispatch_Event.prototype.delBroadcastInfoNotify = function(event) {
var opt = event["opt"];
if (undefined != opt) {
delete event.opt;
}
if (opt == "startCall") {
// 发起广播
event["eventName"] = "OnStartCallResult";
this.EVENT_LIST["BroadcastInfoNotify"]["OnStartCallResult"](event);
} else if (opt == "endCall") {
// 停止广播
event["eventName"] = "OnEndCallResult";
this.EVENT_LIST["BroadcastInfoNotify"]["OnEndCallResult"](event);
} else if (opt == "getList") {
// 查询广播信息
event["eventName"] = "OnQueryBroadcastInfoListNotify";
this.EVENT_LIST["BroadcastInfoNotify"]["OnQueryBroadcastInfoListNotify"](event);
} else {
cloudICP.util.log(undefined, { "logLevel": "error", "logMsg": "delBroadcastInfoNotify: unkown opt. the opt is." + opt });
return;
}
}
/**
* 处理模块的状态通知
*/
ICPSDK_Dispatch_Event.prototype.delModuleNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var statusType = event["statustype"];
if (undefined != statusType) {
delete event.statustype;
}
var statusValue = event["statusvalue"];
if (statusType == "1") {
//短信
if (statusValue == "1") {
//短信溢出
event["eventName"] = "OnDispSMSModuleNotify";
this.EVENT_LIST["MsNotify"]["OnDispSMSModuleNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnDispSMSModuleNotify"]);
} else if (statusValue == "2") {
//短信连接断开
var event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "1";
this.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
} else if (statusValue == "3") {
//短信连接恢复
var event = {};
event["eventName"] = "OnConnection";
event["moduleType"] = "1";
this.EVENT_LIST["ModuleNotify"]["OnConnection"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnConnection"]);
}
} else if (statusType == "2") {
//彩信
event["eventName"] = "OnDispMMSModuleNotify";
this.EVENT_LIST["MsNotify"]["OnDispMMSModuleNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnDispMMSModuleNotify"]);
} else if (statusType == "6") {
//表示SIP模块
if (statusValue == "15") {
//用户已经登出
clearTimeout(cloudICP.dispatch.auth.sendHeartbeatTimeOutId);
delete event.statusvalue;
logoutCleanUp();
event["eventName"] = "OnDispatchKickOutNotifyEvent";
this.EVENT_LIST["ModuleNotify"]["OnDispatchKickOutNotifyEvent"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnDispatchKickOutNotifyEvent"]);
} else if (statusValue == "9") {
//SIP连接断开
event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "2";
this.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
} else if (statusValue == "10") {
//SIP连接恢复
event = {};
event["eventName"] = "OnConnection";
event["moduleType"] = "2";
this.EVENT_LIST["ModuleNotify"]["OnConnection"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnConnection"]);
} else if (statusValue == "22") {
//账号被删除
delete event.statusvalue;
logoutCleanUp();
event["eventName"] = "OnDeleteAccountNotify";
this.EVENT_LIST["ModuleNotify"]["OnDeleteAccountNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnDeleteAccountNotify"]);
} else if (statusValue == "17") {
//密码被修改
delete event.statusvalue;
cloudICP.userInfo["isdn"] = "";
logoutCleanUp();
event["eventName"] = "OnModifyPasswordNotify";
event["rsp"] = "0";
this.EVENT_LIST["ModuleNotify"]["OnModifyPasswordNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnModifyPasswordNotify"]);
}
} else if (statusType == "12") {
if (statusValue == "43") {
// push连接断开
event = {};
event["eventName"] = "OnPushDisConnection";
event["moduleType"] = "12";
this.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
} else if (statusValue == "44") {
// push连接
event = {};
event["eventName"] = "OnPushConnection";
event["moduleType"] = "12";
this.EVENT_LIST["ModuleNotify"]["OnConnection"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnConnection"]);
}
} else if (statusType == "9") {
if (event["statusvalue"] == "16") {
if (event["param"]["type"] == "4") {
if (event["param"]["ret"] == 0) {
var retEvent = {
"eventName": "OnTransferSuccess",
"rsp": "0"
}
this.EVENT_LIST["VoiceNotify"]["OnTransferSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnTransferSuccess"]);
} else {
var retEvent = {
"eventName": "OnTransferFailure",
"rsp": event["param"]["ret"]
}
this.EVENT_LIST["VoiceNotify"]["OnTransferFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnTransferFailure"]);
}
} else if (event["param"]["type"] == "5") {
if (event["param"]["ret"] != "0") {
var retEvent = {
"eventName": "OnInterceptFailure",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VoiceNotify"]["OnInterceptFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnInterceptFailure"]);
} else if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnInterceptSuccess",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VoiceNotify"]["OnInterceptSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnInterceptSuccess"]);
}
} else if (event["param"]["type"] == "0") {
if (event["param"]["ret"] != "0") {
var retEvent = {
"eventName": "OnBreakOffFailure",
"rsp": event["param"]["ret"],
"value": {
"objid": event["param"]["ObjId"]
}
}
this.EVENT_LIST["VoiceNotify"]["OnBreakOffFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnBreakOffFailure"]);
} else if (event["param"]["ret"] == "0") {
if (cloudICP.dispatch.group.isCurrentPtt["grpid"] == event["param"]["ObjId"]) {
cloudICP.dispatch.group.isCurrentPtt = {
"grpid": event["param"]["ObjId"],
"isPtt": false
};
}
var retEvent = {
"eventName": "OnBreakOffSuccess",
"rsp": event["param"]["ret"],
"value": {
"objid": event["param"]["ObjId"]
}
}
this.EVENT_LIST["VoiceNotify"]["OnBreakOffSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnBreakOffSuccess"]);
}
} else if (event["param"]["type"] == "1") {
var retEvent = {
"eventName": "OnTalkingGroupCallJoinNotify",
"rsp": event["param"]["ret"],
"value": {
"grpid": event["param"]["ObjId"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallJoinNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallJoinNotify"]);
} else if (event["param"]["type"] == "7") {
if (event["param"]["ret"] != "0") {
var retEvent = {
"eventName": "OnVideoDispatchFailure",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VideoNotify"]["OnVideoDispatchFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnVideoDispatchFailure"]);
} else {
var retEvent = {
"eventName": "OnVideoDispatchSuccess",
"rsp": "0",
}
this.EVENT_LIST["VideoNotify"]["OnVideoDispatchSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnVideoDispatchSuccess"]);
}
} else if (event["param"]["type"] == "8") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnCancelVideoDispatchSuccess",
"rsp": "0",
}
this.EVENT_LIST["VideoNotify"]["OnCancelVideoDispatchSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnCancelVideoDispatchSuccess"]);
} else {
var retEvent = {
"eventName": "OnCancelVideoDispatchFailure",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VideoNotify"]["OnCancelVideoDispatchFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnCancelVideoDispatchFailure"]);
}
} else if (event["param"]["type"] == "9") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnStopVideoUploadWallSuccess",
"rsp": "0",
"value": {
"channel": event["param"]["DstObjId"]
}
}
this.EVENT_LIST["VideoNotify"]["OnStopVideoUploadWallSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnStopVideoUploadWallSuccess"]);
} else {
var retEvent = {
"eventName": "OnStopVideoUploadWallFailure",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VideoNotify"]["OnStopVideoUploadWallFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnStopVideoUploadWallFailure"]);
}
} else if (event["param"]["type"] == "10") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnStartVideoUploadWallSuccess",
"rsp": "0",
"value": {
"channel": event["param"]["DstObjId"],
"src": event["param"]["SrcObjId"]
}
}
this.EVENT_LIST["VideoNotify"]["OnStartVideoUploadWallSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnStartVideoUploadWallSuccess"]);
} else {
var retEvent = {
"eventName": "OnStartVideoUploadWallFailure",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VideoNotify"]["OnStartVideoUploadWallFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnStartVideoUploadWallFailure"]);
}
} else if (event["param"]["type"] == "17") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnAddTalkingGroupTempUserSuccess",
"groupid": event["param"]["groupid"],
"useid": event["param"]["useid"],
"rsp": "0",
}
this.EVENT_LIST["GroupCallNotify"]["OnAddTalkingGroupTempUserSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnAddTalkingGroupTempUserSuccess"]);
} else {
var retEvent = {
"eventName": "OnAddTalkingGroupTempUserFailure",
"rsp": event["param"]["ret"],
"groupid": event["param"]["groupid"],
"useid": event["param"]["useid"],
}
this.EVENT_LIST["GroupCallNotify"]["OnAddTalkingGroupTempUserFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnAddTalkingGroupTempUserFailure"]);
}
} else if (event["param"]["type"] == "21") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnCancelTransferSuccess",
"rsp": "0",
}
this.EVENT_LIST["VoiceNotify"]["OnCancelTransferSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCancelTransferSuccess"]);
} else {
var retEvent = {
"eventName": "OnCancelTransferFailure",
"rsp": event["param"]["ret"],
}
this.EVENT_LIST["VoiceNotify"]["OnCancelTransferFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCancelTransferFailure"]);
}
} else if (event["param"]["type"] == "24") {
// modified by lwx1179774 问题是保持和取消保持偶尔会失败,策略是加了延时处理
setTimeout(function() {
var holdCid = "-1";
var callStatusMgr = cloudICP.util.callStatusMgr;
for (var index = callStatusMgr.holdMgr.length - 1; index >= 0; index--) {
var call = callStatusMgr.allCalls[callStatusMgr.holdMgr[index]];
var callID = "";
if (call["callee"] == cloudICP.userInfo["isdn"]) {
callID = call["caller"];
} else if (call["caller"] == cloudICP.userInfo["isdn"]) {
callID = call["callee"];
} else {
return;
}
if (call && callID == event["param"]["isdn"]) {
holdCid = callStatusMgr.holdMgr[index];
callStatusMgr.holdMgr.splice(index, 1);
break;
}
}
if (holdCid == "-1") {
return;
}
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnHoldSuccess",
"rsp": "0",
"value": {
"peerid": event["param"]["isdn"],
"cid": holdCid
}
}
callStatusMgr.updateCallStatus(null, callStatusMgr.HOLD, {
"value": {
"cid": holdCid
}
});
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldSuccess"].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldSuccess"]);
} else {
var retEvent = {
"eventName": "OnHoldFailure",
"rsp": event["param"]["ret"],
"value": {
"peerid": event["param"]["isdn"],
"cid": holdCid
}
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"]);
}
}, 500);
} else if (event["param"]["type"] == "25") {
// modified by lwx1179774 问题是保持和取消保持偶尔会失败,策略是加了延时处理
setTimeout(function() {
var holdCid = "-1";
var callStatusMgr = cloudICP.util.callStatusMgr;
for (var index = callStatusMgr.holdMgr.length - 1; index >= 0; index--) {
var call = callStatusMgr.allCalls[callStatusMgr.holdMgr[index]];
var callID = "";
if (call["callee"] == cloudICP.userInfo["isdn"]) {
callID = call["caller"];
} else if (call["caller"] == cloudICP.userInfo["isdn"]) {
callID = call["callee"];
} else {
return;
}
if (call && callID == event["param"]["isdn"]) {
holdCid = callStatusMgr.holdMgr[index];
callStatusMgr.holdMgr.splice(index, 1);
break;
}
}
if (holdCid == "-1") {
return;
}
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnUnholdSuccess",
"rsp": "0",
"value": {
"peerid": event["param"]["isdn"],
"cid": holdCid
}
}
callStatusMgr.unholdCall(holdCid, reqId);
callStatusMgr.updateCallStatus(null, callStatusMgr.CONNECTING, {
"value": {
"cid": holdCid
}
});
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnUnholdSuccess"].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnUnholdSuccess"]);
} else {
var retEvent = {
"eventName": "OnUnholdFailure",
"rsp": event["param"]["ret"],
"value": {
"peerid": event["param"]["isdn"],
"cid": holdCid
}
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnUnholdFailure"].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnUnholdFailure"]);
}
}, 500);
} else if (event["param"]["type"] == "26") {
var holdCid = "-1";
var callStatusMgr = cloudICP.util.callStatusMgr;
for (var index = callStatusMgr.holdMgr.length - 1; index >= 0; index--) {
var call = callStatusMgr.allCalls[callStatusMgr.holdMgr[index]];
var callID = "";
if (call["callee"] == cloudICP.userInfo["isdn"]) {
callID = call["caller"];
} else if (call["caller"] == cloudICP.userInfo["isdn"]) {
callID = call["callee"];
} else {
return;
}
if (call && callID == event["param"]["isdn"]) {
holdCid = callStatusMgr.holdMgr[index];
callStatusMgr.holdMgr.splice(index, 1);
break;
}
}
if (holdCid == "-1") {
return;
}
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnHoldConfSuccess",
"rsp": "0",
"value": {
"confCode": event["param"]["isdn"],
"cid": holdCid
}
}
callStatusMgr.updateCallStatus(null, callStatusMgr.HOLD, {
"value": {
"cid": holdCid
}
});
this.EVENT_LIST["PhoneConfNotify"]["OnHoldConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnHoldConfSuccess"]);
} else {
var retEvent = {
"eventName": "OnHoldConfFailure",
"rsp": event["param"]["ret"],
"value": {
"confCode": event["param"]["isdn"],
"cid": holdCid
}
}
this.EVENT_LIST["PhoneConfNotify"]["OnHoldConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnHoldConfFailure"]);
}
} else if (event["param"]["type"] == "27") {
var holdCid = "-1";
var callStatusMgr = cloudICP.util.callStatusMgr;
for (var index = callStatusMgr.holdMgr.length - 1; index >= 0; index--) {
var call = callStatusMgr.allCalls[callStatusMgr.holdMgr[index]];
var callID = "";
if (call["callee"] == cloudICP.userInfo["isdn"]) {
callID = call["caller"];
} else if (call["caller"] == cloudICP.userInfo["isdn"]) {
callID = call["callee"];
} else {
return;
}
if (call && callID == event["param"]["isdn"]) {
holdCid = callStatusMgr.holdMgr[index];
callStatusMgr.holdMgr.splice(index, 1);
break;
}
}
if (holdCid == "-1") {
return;
}
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnUnholdConfSuccess",
"rsp": "0",
"value": {
"confCode": event["param"]["isdn"],
"cid": holdCid
}
}
callStatusMgr.unholdCall(holdCid, reqId);
callStatusMgr.updateCallStatus(null, callStatusMgr.CONNECTING, {
"value": {
"cid": holdCid
}
});
this.EVENT_LIST["PhoneConfNotify"]["OnUnholdConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnholdConfSuccess"]);
} else {
var retEvent = {
"eventName": "OnUnholdConfFailure",
"rsp": event["param"]["ret"],
"value": {
"confCode": event["param"]["isdn"],
"cid": holdCid
}
}
this.EVENT_LIST["PhoneConfNotify"]["OnUnholdConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnholdConfFailure"]);
}
} else if (event["param"]["type"] == "11") {
if (event["param"]["ret"] != "0") {
var retEvent = {
"eventName": "OnDynamicGroupOptFailed",
"rsp": event["param"]["ret"],
"grpid": event["param"]["group"],
"opt": event["param"]["opt"]
}
this.EVENT_LIST["GroupNotify"]["OnDynamicGroupOptFailed"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnDynamicGroupOptFailed"]);
}
} else if (event["param"]["type"] == "28") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnConfProxyFloorSuccess",
"rsp": "0",
"value": {
"member": event["param"]["member"],
"operation": event["param"]["operation"]
}
}
this.EVENT_LIST["PhoneConfNotify"]["OnConfProxyFloorSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfProxyFloorSuccess"]);
} else {
var retEvent = {
"eventName": "OnConfProxyFloorFailure",
"rsp": event["param"]["ret"],
"value": {
"member": event["param"]["member"],
"operation": event["param"]["operation"]
}
}
this.EVENT_LIST["PhoneConfNotify"]["OnConfProxyFloorFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfProxyFloorFailure"]);
}
} else if (event["param"]["type"] == "29") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnQueryPDTGroupSuccess",
"rsp": "0",
"value": {
"userid": event["param"]["userid"],
"operation": event["param"]["operation"],
"groupid": event["param"]["groupid"],
"result": event["param"]["result"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnQueryPDTGroupSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnQueryPDTGroupSuccess"]);
} else {
var retEvent = {
"eventName": "OnQueryPDTGroupFailure",
"rsp": event["param"]["ret"],
"value": {
"userid": event["param"]["userid"],
"operation": event["param"]["operation"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnQueryPDTGroupFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnQueryPDTGroupFailure"]);
}
} else if (event["param"]["type"] == "30") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnSetListenGroupSuccess",
"rsp": "0",
"value": {
"operation": event["param"]["operation"],
"groupid": event["param"]["groupid"],
"result": event["param"]["result"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnSetListenGroupSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnSetListenGroupSuccess"]);
} else {
var retEvent = {
"eventName": "OnSetListenGroupFailure",
"rsp": event["param"]["ret"],
"value": {
"groupid": event["param"]["groupid"],
"operation": event["param"]["operation"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnSetListenGroupFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnSetListenGroupFailure"]);
}
} else if (event["param"]["type"] == "31") {
if (event["param"]["ret"] == "0") {
var retEvent = {
"eventName": "OnSetLinkedPhoneSuccess",
"rsp": "0"
}
this.EVENT_LIST["ModuleNotify"]["OnSetLinkedPhoneSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnSetLinkedPhoneSuccess"]);
} else {
var retEvent = {
"eventName": "OnSetLinkedPhoneFailure",
"rsp": event["param"]["ret"]
}
this.EVENT_LIST["ModuleNotify"]["OnSetLinkedPhoneFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["ModuleNotify"]["OnSetLinkedPhoneFailure"]);
}
}
}
}
};
ICPSDK_Dispatch_Event.prototype.delMsNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var opt = event["opt"];
if (undefined != opt) {
delete event.opt;
}
var value = event["value"];
if (undefined == value) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delMsNotify: value is undefined."
});
return;
}
var type = value["type"];
if (undefined != type) {
delete value.type;
}
if (undefined != value["direction"]) {
delete value.direction;
}
if (type == "0001") {
//短信
if (undefined != value["statuscode"]) {
delete value.statuscode;
}
if (undefined != value["speed"]) {
delete value.speed;
}
if (undefined != value["attach"]) {
delete value.attach;
}
if (opt == "recvmsg") {
//接收短信
event["rsp"] = "0";
// 转化时区
if (value["state"] == 1) {
var tmpTime = value["date"].split("-");
var tempDate = value["time"].split(":");
var time = new Date(Date.UTC(tmpTime[0], parseInt(tmpTime[1]) - 1, tmpTime[2], tempDate[0],
tempDate[1], tempDate[2]));
var mYear = time.getFullYear().toString();
var tempMonth = time.getMonth() + 1;
var mMonth = (tempMonth < 10) ? "0" + tempMonth.toString() : tempMonth.toString();
var mDay = (time.getDate() < 10) ? "0" + time.getDate().toString() : time.getDate().toString();
var mHour = (time.getHours() < 10) ? "0" + time.getHours().toString() : time.getHours().toString();
var mMinute = (time.getMinutes() < 10) ? "0" + time.getMinutes().toString() : time.getMinutes()
.toString();
var mSecond = (time.getSeconds() < 10) ? "0" + time.getSeconds().toString() : time.getSeconds()
.toString();
value["date"] = mYear + "-" + mMonth + "-" + mDay;
value["time"] = mHour + ":" + mMinute + ":" + mSecond;
}
if (undefined != value["state"]) {
delete value.state;
}
event["eventName"] = "OnRecvDispSMSNotify";
if (undefined != event["value"]["audiocontent"]) {
event["value"]["audiocontent"] = event["value"]["audiocontent"].replace(/-/g, "+");
event["value"]["audiocontent"] = event["value"]["audiocontent"].replace(/_/g, "/");
}
this.EVENT_LIST["MsNotify"]["OnRecvDispSMSNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnRecvDispSMSNotify"]);
} else if (opt == "sendresult") {
//发送短信
if (undefined != value["groupid"]) {
delete value.groupid;
}
if (undefined != value["state"]) {
delete value.state;
}
if (undefined != value["emerg_groupid"]) {
delete value.emerg_groupid;
}
if (undefined != value["emerg_ueid"]) {
delete value.emerg_ueid;
}
// value.msgid = new Date(value["date"] + " " + value["time"]).getTime().toString()
event["eventName"] = "OnSendDispSMSResult";
this.EVENT_LIST["MsNotify"]["OnSendDispSMSResult"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnSendDispSMSResult"]);
}
} else if (type == "0002") {
//状态短信
if (undefined != value["state"]) {
delete value.state;
}
if (undefined != event["rsp"]) {
delete event.rsp;
}
if (undefined != value["speed"]) {
delete value.speed;
}
if (undefined != value["emerg_groupid"]) {
delete value.emerg_groupid;
}
if (undefined != value["emerg_ueid"]) {
delete value.emerg_ueid;
}
if (undefined != value["groupid"]) {
delete value.groupid;
}
if (undefined != value["attach"]) {
delete value.attach;
}
event["eventName"] = "OnRecvStateMsgNotify";
this.EVENT_LIST["MsNotify"]["OnRecvStateMsgNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnRecvStateMsgNotify"]);
} else if (type == "0003") {
//表示告警信息
} else if (type == "0004") {
if (undefined != value["speed"]) {
delete value.speed;
}
if (undefined != value["statuscode"]) {
delete value.statuscode;
}
//表示彩信
if (opt == "recvmsg") {
//接收彩信
event["rsp"] = "0";
// 转化时区
if (value["state"] == 1) {
var tmpTime = value["date"].split("-");
var tempDate = value["time"].split(":");
var time = new Date(Date.UTC(tmpTime[0], parseInt(tmpTime[1]) - 1, tmpTime[2], tempDate[0],
tempDate[1], tempDate[2]));
var mYear = time.getFullYear().toString();
var tempMonth = time.getMonth() + 1;
var mMonth = (tempMonth < 10) ? "0" + tempMonth.toString() : tempMonth.toString();
var mDay = (time.getDate() < 10) ? "0" + time.getDate().toString() : time.getDate().toString();
var mHour = (time.getHours() < 10) ? "0" + time.getHours().toString() : time.getHours().toString();
var mMinute = (time.getMinutes() < 10) ? "0" + time.getMinutes().toString() : time.getMinutes()
.toString();
var mSecond = (time.getSeconds() < 10) ? "0" + time.getSeconds().toString() : time.getSeconds()
.toString();
value["date"] = mYear + "-" + mMonth + "-" + mDay;
value["time"] = mHour + ":" + mMinute + ":" + mSecond;
}
if (undefined != value["state"]) {
delete value.state;
}
event["eventName"] = "OnRecvDispMMSNotify";
this.EVENT_LIST["MsNotify"]["OnRecvDispMMSNotify"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnRecvDispMMSNotify"]);
} else if (opt == "sendresult") {
//发送彩信
if (undefined != value["groupid"]) {
delete value.groupid;
}
if (undefined != value["state"]) {
delete value.state;
}
if (undefined != value["emerg_groupid"]) {
delete value.emerg_groupid;
}
if (undefined != value["emerg_ueid"]) {
delete value.emerg_ueid;
}
event["eventName"] = "OnSendDispMMSResult";
this.EVENT_LIST["MsNotify"]["OnSendDispMMSResult"].event = event;
sendEvent2Page(reqId, this.EVENT_LIST["MsNotify"]["OnSendDispMMSResult"]);
}
} else if (type == "0010") {
//表示ACK消息
} else if (type == "0011") {
//表示消息发送失败错误码
}
}
/**
* 处理视频通知
*/
ICPSDK_Dispatch_Event.prototype.delVideoNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var rsp = event["rsp"];
if (undefined == rsp) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delVideoNotify: rsp is undefined."
});
return;
}
var value = event["value"];
if (undefined == value) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delVideoNotify: value is undefined."
});
return;
}
var confInfo = value["confInfo"];
if (undefined != confInfo) {
if (!!confInfo["confInternalId"]) {
value["confId"] = confInfo["confInternalId"];
}
delete value.confInfo;
}
var from;
if (undefined != value["from"] && value["from"] != "" && value["caller"] != value["from"]) {
from = value["from"];
} else {
from = value["caller"];
}
var newEvent = {
"eventName": "",
"rsp": rsp,
"value": {
"callee": value["callee"],
"caller": value["caller"],
"cid": value["cid"],
"fmt": value["fmt"]
}
}
if (value["caller"] == cloudICP.userInfo["isdn"]) {
// 呼出方
switch (rsp) {
case "3004":
var callStatusMgr = cloudICP.util.callStatusMgr;
if (!!callStatusMgr.windowInfos[value["callee"]]) { //视频点呼、视频监控、主动入会
callStatusMgr.windowInfos[value["callee"]]["cid"] = event["value"]["cid"];
}
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.NEW, event, confInfo);
break;
}
if (event["value"]["isVideoDial"] == "0") {
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "monitor";
newEvent["eventName"] = "OnDialOutProceeding";
this.EVENT_LIST["VoiceNotify"]["OnDialOutProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutProceeding"]);
break;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "video";
newEvent["eventName"] = "OnDialOutProceeding";
this.EVENT_LIST["VoiceNotify"]["OnDialOutProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutProceeding"]);
break;
// 视频振铃事件
case "3005":
// 播放回铃音
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":1, \"delay\":0, \"duration\":0, \"playcount\":0}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RINGING, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfDialOutRinging";
this.EVENT_LIST["PhoneConfNotify"]["OnConfDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfDialOutRinging"]);
break;
} else if (call && call.callType == callStatusMgr.MONITOR) {
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "monitor";
newEvent["eventName"] = "OnDialOutRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"]);
break;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "video";
newEvent["eventName"] = "OnDialOutRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"]);
break;
// 视频点呼建立事件
case "3003":
// 停止振铃
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 建立音频媒体通道
if (value["local_audio"] != "0.0.0.0,0" && value["server_audio"] != "0.0.0.0,0") {
let localArr = value["local_audio"].split(",");
let serverArr = value["server_audio"].split(",");
var user = cloudICP.userInfo["isdn"];
var peerUser = value["callee"];
if (user == peerUser) {
peerUser = value["caller"];
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VIDEOCONF) {
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"number\": \"conference\",\"user\":\"{7}\", \"peerUser\":\"{8}\"}}, \"reqId\": \"{9}\"}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0],
serverArr[1], parseInt(value["audio"]), parseInt(value["audio_ssrc"]), user,
peerUser, reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else {
var callNumber;
if (event["value"]["callee"] != cloudICP.userInfo["isdn"]) {
callNumber = event["value"]["callee"]
} else {
callNumber = event["value"]["caller"];
}
if (call && call.callType == callStatusMgr.MONITOR) {
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"number\": \"{7}\" , \"recvOnly\": true ,\"user\":\"{8}\", \"peerUser\":\"{9}\"}}, \"reqId\": \"{10}\"}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0],
serverArr[1], parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(
callNumber), user, peerUser, reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else {
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"number\": \"{7}\",\"user\":\"{8}\", \"peerUser\":\"{9}\"} }, \"reqId\": \"{10}\"}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0],
serverArr[1], parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(
callNumber), user, peerUser, reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
}
}
var recvOnly = false;
if (event["value"]["camera"] == "1") {
recvOnly = true;
}
// 建立视频媒体通道
if (value["local_video"] != "0.0.0.0,0" && value["server_video"] != "0.0.0.0,0") {
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]] = event;
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value[
"callee"]]; //视频点呼、视频监控、主动入会
var iuserWindowId = 0;
var ishowToolbar = 1;
var ibuttonIDs = 0;
var bHide = false;
var bEnableDrag = true;
var iWidth = 640;
var iHeight = 480;
var iPosX = 400;
var iPosY = 400;
var fmtType = "TIN";
var windowMode = cloudICP.config["mode"];
var videoConfLocalWindow = null;
var videoResizeMode = cloudICP.config["videoResizeMode"];
if ((undefined != value["confId"]) && (undefined != cloudICP.config[
"videoConfLocalWindow"])) { //会议业务
videoConfLocalWindow = cloudICP.config["videoConfLocalWindow"];
}
if (!!windowToolbarInfo) {
if (undefined != windowToolbarInfo["userWindowId"]) {
iuserWindowId = parseInt(windowToolbarInfo["userWindowId"]);
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["userWindowId"] =
iuserWindowId;
}
if (undefined != windowToolbarInfo["showToolbar"]) {
ishowToolbar = parseInt(windowToolbarInfo["showToolbar"]);
}
if (undefined != windowToolbarInfo["buttonIDs"]) {
ibuttonIDs = parseInt(windowToolbarInfo["buttonIDs"]);
}
if (undefined != windowToolbarInfo["hide"]) {
bHide = Boolean(windowToolbarInfo["hide"]);
}
if (undefined != windowToolbarInfo["enableDrag"]) {
bEnableDrag = Boolean(windowToolbarInfo["enableDrag"]);
}
if (undefined != windowToolbarInfo["mode"]) {
windowMode = windowToolbarInfo["mode"].toString();
}
if (undefined != windowToolbarInfo["fmtType"]) {
fmtType = windowToolbarInfo["fmtType"].toString();
}
if (undefined != windowToolbarInfo["width"]) {
iWidth = parseInt(windowToolbarInfo["width"]);
}
if (undefined != windowToolbarInfo["height"]) {
iHeight = parseInt(windowToolbarInfo["height"]);
}
if (undefined != windowToolbarInfo["posX"]) {
iPosX = parseInt(windowToolbarInfo["posX"]);
}
if (undefined != windowToolbarInfo["posY"]) {
iPosY = parseInt(windowToolbarInfo["posY"]);
}
if (undefined != windowToolbarInfo["videoConfLocalWindow"]) {
videoConfLocalWindow = windowToolbarInfo["videoConfLocalWindow"];
}
if (undefined != windowToolbarInfo["videoResizeMode"]) {
videoResizeMode = windowToolbarInfo["videoResizeMode"];
}
}
if ((!!windowInfo) && (!!windowInfo["iCid"])) {
if (undefined != windowInfo["userWindowId"]) {
iuserWindowId = parseInt(windowInfo["userWindowId"]);
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["userWindowId"] =
iuserWindowId;
}
if (undefined != windowInfo["showToolbar"]) {
ishowToolbar = parseInt(windowInfo["showToolbar"]);
}
if (undefined != windowInfo["buttonIDs"]) {
ibuttonIDs = parseInt(windowInfo["buttonIDs"]);
}
if (undefined != windowInfo["mode"]) {
windowMode = windowInfo["mode"].toString();
}
if (undefined != windowInfo["fmtType"]) {
fmtType = windowInfo["fmtType"].toString();
}
if (undefined != windowInfo["width"]) {
iWidth = parseInt(windowInfo["width"]);
}
if (undefined != windowInfo["height"]) {
iHeight = parseInt(windowInfo["height"]);
}
if (undefined != windowInfo["posX"]) {
iPosX = parseInt(windowInfo["posX"]);
}
if (undefined != windowInfo["posY"]) {
iPosY = parseInt(windowInfo["posY"]);
}
if (undefined != windowInfo["hide"]) {
bHide = Boolean(windowInfo["hide"]);
}
if (undefined != windowInfo["enableDrag"]) {
bEnableDrag = Boolean(windowInfo["enableDrag"]);
}
if (undefined != windowInfo["videoConfLocalWindow"]) {
videoConfLocalWindow = windowInfo["videoConfLocalWindow"];
}
if (undefined != windowInfo["videoResizeMode"]) {
videoResizeMode = windowInfo["videoResizeMode"];
}
}
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["hide"] = bHide;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["enableDrag"] = bEnableDrag;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["showToolbar"] = ishowToolbar;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["buttonIDs"] = ibuttonIDs;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["width"] = iWidth;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["height"] = iHeight;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["posX"] = iPosX;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["posY"] = iPosY;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["winMode"] = windowMode;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["fmtType"] = fmtType;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["direction"] = "out";
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["rsp"] = event["rsp"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["videoConfLocalWindow"] = videoConfLocalWindow;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["tabPageId"] = reqId;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["videoResizeMode"] = videoResizeMode;
if (0 != iuserWindowId) {
param =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"hide\": {7}, \"enableDrag\":{8}, \"scrollX\": {9}, \"scrollY\":{10}, \"showToolbar\": {11}, \"buttonIDs\": {12}, \"userWindowId\": {13}, \"videoResizeMode\": {15} }, \"reqId\": \"{14}\" }"
.format(
parseInt(value["cid"]), parseInt(value["cid"]), windowMode, iWidth, iHeight, iPosX,
iPosY, bHide, bEnableDrag, 0, 0, ishowToolbar, ibuttonIDs, iuserWindowId, reqId, videoResizeMode
);
} else {
param =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"hide\": {7}, \"enableDrag\":{8}, \"scrollX\": {9}, \"scrollY\":{10}, \"showToolbar\": {11}, \"buttonIDs\": {12}, \"videoResizeMode\": {14} }, \"reqId\": \"{13}\"}"
.format(
parseInt(value["cid"]), parseInt(value["cid"]), windowMode, iWidth, iHeight, iPosX,
iPosY, bHide, bEnableDrag, 0, 0, ishowToolbar, ibuttonIDs, reqId, videoResizeMode
);
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true); //modify_by_caohui
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[value["cid"]];
if (call && call.callType == callStatusMgr.MONITOR) {
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.CONNECTING, event);
break; //暂时不通知上层,等创建窗口成功后通知
} else if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(value["cid"], reqId);
break; //暂时不通知上层,等创建窗口成功后通知
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
//暂时不通知上层,等创建窗口成功后通知
//newEvent["value"]["calltype"] = "video";
//newEvent["value"]["src"] = "";
//newEvent["value"]["direction"] = "out";
//newEvent["value"]["ptz"] = event["value"]["ptz"];
//newEvent["value"]["mute"] = event["value"]["mute"];
//newEvent["eventName"] = "OnCallConnect";
//this.EVENT_LIST["VoiceNotify"]["OnCallConnect"](newEvent);
break;
case "3008":
var videoMediaInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
var delay = 0;
if (undefined === videoMediaInfo || undefined === videoMediaInfo["isCreateWindowComplete"] || videoMediaInfo["isCreateWindowComplete"] != true) {
delay = 5000;
}
// DTS2023030315978 3008消息与196610消息时序问题导致弹窗关不掉
setTimeout(() => {
// 对端挂起事件
//停止振铃
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除视频媒体通道
var bIsNeedDestroyWindow = false;
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value["callee"]]; //视频点呼、视频监控、主动入会
var videoMediaWorkingInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
var iuserWindowId = 0;
if (undefined != windowInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["cid"]];
}
if (undefined != windowToolbarInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["callee"]];
}
if (undefined != videoMediaWorkingInfo) { //该视频窗口有业务正在使用
if (undefined != videoMediaWorkingInfo["value"]["userWindowId"]) {
iuserWindowId = videoMediaWorkingInfo["value"]["userWindowId"];
}
if (undefined != videoMediaWorkingInfo["value"]["isNeedDestroyWindow"] && true ==
videoMediaWorkingInfo["value"]["isNeedDestroyWindow"]) { //用户需要释放该视频窗口
bIsNeedDestroyWindow = true;
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[iuserWindowId.toString()];
}
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
}
if (true == bIsNeedDestroyWindow) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"isNeedDestroyWindow\":{1}, \"userWindowId\":{2}}}"
.format(
parseInt(value["cid"]), bIsNeedDestroyWindow, iuserWindowId
);
} else if (0 != iuserWindowId) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"userWindowId\":{1}}}"
.format(
parseInt(value["cid"]), iuserWindowId
);
} else {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}}"
.format(
parseInt(value["cid"])
);
}
cloudICP.util.CleanThisRepeatsMonitor(value["caller"], value["callee"]);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除内嵌窗口cid
cloudICP.util.deleteWssflowModeCid(value["cid"]);
cloudICP.util.callStatusMgr.delWssflowDemoMap(value["cid"]);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.MONITOR) {
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "monitor";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(event["value"]);
return;
} else if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"][
"OnUnsubscribeConfFailure"
].event = newEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "video";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(event["value"]);
}, delay);
break;
case "3009":
// DC挂断事件
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
var tmpVideoMediaInfo;
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]) {
tmpVideoMediaInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
}
//停止振铃
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var vidoReleaseTag = false;
if (undefined != tmpVideoMediaInfo && undefined != tmpVideoMediaInfo["value"]
&& undefined != tmpVideoMediaInfo["value"]["releaseTag"]) {
vidoReleaseTag = tmpVideoMediaInfo["value"]["releaseTag"];
}
// 删除视频媒体通道
var bIsNeedDestroyWindow = false;
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value["callee"]]; //视频点呼、视频监控、主动入会
var videoMediaWorkingInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
var iuserWindowId = 0;
if (undefined != windowInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["cid"]];
}
if (undefined != windowToolbarInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["callee"]];
}
if (undefined != videoMediaWorkingInfo) { //该视频窗口有业务正在使用
if (undefined != videoMediaWorkingInfo["value"]["userWindowId"]) {
iuserWindowId = videoMediaWorkingInfo["value"]["userWindowId"];
}
if (undefined != videoMediaWorkingInfo["value"]["isNeedDestroyWindow"] && true ==
videoMediaWorkingInfo["value"]["isNeedDestroyWindow"]) { //用户需要释放该视频窗口
bIsNeedDestroyWindow = true;
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[iuserWindowId.toString()];
}
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
}
if (true == bIsNeedDestroyWindow) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"isNeedDestroyWindow\":{1}, \"userWindowId\":{2}}}"
.format(
parseInt(value["cid"]), bIsNeedDestroyWindow, iuserWindowId
);
} else if (0 != iuserWindowId) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"userWindowId\":{1}}}"
.format(
parseInt(value["cid"]), iuserWindowId
);
} else {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}}"
.format(
parseInt(value["cid"])
);
}
cloudICP.util.CleanThisRepeatsMonitor(value["caller"], value["callee"]);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
if (vidoReleaseTag) { // 创建流已经释放场景不需要重复通知释放消息
break;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.MONITOR) {
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "monitor";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(event["value"]);
break;
} else if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"][
"OnUnsubscribeConfFailure"
].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "video";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(event["value"]);
break;
case "3013":
case "3015":
case "3014":
case "3016": // 被叫号码不存在
case "3017": // 对端服务不能使用
case "3021": // 对端不在线
case "3045": // 对端不支持该操作,可能是没有权限或者不支持该分辨率
case "3044": // 本端不支持该操作,可能是没有权限
case "3048": // 对端没有权限
case "3022": // 对端没有权限
case "2033": // 对端断电
// 呼出失败事件
//停止振铃
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
if (undefined != windowInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["cid"]];
}
if (undefined != value["callee"]) {
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value[
"callee"]]; //视频点呼、视频监控、主动入会
if (undefined != windowToolbarInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["callee"]];
}
}
cloudICP.util.CleanThisRepeatsMonitor(value["caller"], value["callee"]);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
if (rsp == "3013") {
//对端正在通话中
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":3, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "3014" || rsp == "3048" || rsp == "3021") {
//对端无法接通
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":4, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "3016") {
//对端号码不存在
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":5, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "") {
//本段没有权限
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":6, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "") {
//对端没有权限
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":7, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "3015") {
//对端无应答
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":8, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "") {
//对端正忙
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":9, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "3044" || rsp == "3022" || rsp == "2033" || "3045") {
//拨打业务无法支持
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":10, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RELEASE, event, confInfo);
newEvent["value"]["confId"] = confInfo["confInternalId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfFailure";
this.EVENT_LIST["PhoneConfNotify"]["OnConfFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfFailure"]);
break;
}
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.MONITOR) {
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "monitor";
newEvent["eventName"] = "OnDialOutFailure";
this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"]);
break;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "video";
newEvent["eventName"] = "OnDialOutFailure";
this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"]);
break;
case "3053": //mrs notify
if (call && call.callType == callStatusMgr.VIDEOCONF && confInfo != undefined) {
newEvent["value"]["confId"] = confInfo["confInternalId"];
}
newEvent["value"]["downloadurl"] = event["value"]["downloadurl"];
newEvent["value"]["playurl"] = event["value"]["playurl"];
newEvent["value"]["recordid"] = event["value"]["recordid"];
newEvent["eventName"] = "MRSInfoNotify";
this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"]);
break;
default:
break;
}
} else {
switch (rsp) {
case "3002":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
newEvent["value"]["caller"] = from;
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":1, \"delay\":0, \"duration\": 0, \"playcount\":0}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RINGING, event, confInfo);
newEvent["value"]["confId"] = confInfo["confInternalId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfDialInRinging";
this.EVENT_LIST["PhoneConfNotify"]["OnConfDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfDialInRinging"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RINGING, event);
// 视频响铃事件
newEvent["value"]["calltype"] = "video";
newEvent["value"]["src"] = "";
newEvent["eventName"] = "OnDialInRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"]);
break;
// 视频点呼被acked事件
case "3006":
// 停止振铃
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 建立音频媒体通道
if (value["local_audio"] != "0.0.0.0,0" && value["server_audio"] != "0.0.0.0,0") {
let localArr = value["local_audio"].split(",");
let serverArr = value["server_audio"].split(",");
var user = cloudICP.userInfo["isdn"];
var peerUser = value["callee"];
if (user == peerUser) {
peerUser = value["caller"];
}
var callNumber;
if (event["value"]["callee"] != cloudICP.userInfo["isdn"]) {
callNumber = event["value"]["callee"]
} else {
callNumber = event["value"]["caller"];
}
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"number\": \"{7}\", \"user\":\"{8}\", \"peerUser\":\"{9}\"}}, \"reqId\": \"{10}\"}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[
1], parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(callNumber),
user,
peerUser,
reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
// 建立视频媒体通道
if (value["local_video"] != "0.0.0.0,0" && value["server_video"] != "0.0.0.0,0") {
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]] = event;
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value[
"callee"]]; //视频点呼、视频监控、主动入会
var iuserWindowId = 0;
var ishowToolbar = 1;
var ibuttonIDs = 0;
var bHide = false;
var bEnableDrag = true;
var iWidth = 640;
var iHeight = 480;
var iPosX = 400;
var iPosY = 400;
var fmtType = "TIN";
var windowMode = cloudICP.config["mode"];
var videoConfLocalWindow = null;
var videoResizeMode = cloudICP.config["videoResizeMode"];
if ((undefined != value["confId"]) && (undefined != cloudICP.config["videoConfLocalWindow"])) {
videoConfLocalWindow = cloudICP.config["videoConfLocalWindow"];
}
if (!!windowToolbarInfo) {
if (undefined != windowToolbarInfo["userWindowId"]) {
iuserWindowId = parseInt(windowToolbarInfo["userWindowId"]);
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["userWindowId"] =
iuserWindowId;
newEvent["value"]["userWindowId"] = iuserWindowId;
}
if (undefined != windowToolbarInfo["showToolbar"]) {
ishowToolbar = parseInt(windowToolbarInfo["showToolbar"]);
}
if (undefined != windowToolbarInfo["buttonIDs"]) {
ibuttonIDs = parseInt(windowToolbarInfo["buttonIDs"]);
}
if (undefined != windowToolbarInfo["mode"]) {
windowMode = windowToolbarInfo["mode"].toString();
}
if (undefined != windowToolbarInfo["fmtType"]) {
fmtType = windowToolbarInfo["fmtType"].toString();
}
if (undefined != windowToolbarInfo["width"]) {
iWidth = parseInt(windowToolbarInfo["width"]);
}
if (undefined != windowToolbarInfo["height"]) {
iHeight = parseInt(windowToolbarInfo["height"]);
}
if (undefined != windowToolbarInfo["posX"]) {
iPosX = parseInt(windowToolbarInfo["posX"]);
}
if (undefined != windowToolbarInfo["posY"]) {
iPosY = parseInt(windowToolbarInfo["posY"]);
}
if (undefined != windowToolbarInfo["hide"]) {
bHide = Boolean(windowToolbarInfo["hide"]);
}
if (undefined != windowToolbarInfo["enableDrag"]) {
bEnableDrag = Boolean(windowToolbarInfo["enableDrag"]);
}
if (undefined != windowToolbarInfo["videoConfLocalWindow"]) {
videoConfLocalWindow = windowToolbarInfo["videoConfLocalWindow"];
}
}
if ((!!windowInfo) && (!!windowInfo["iCid"])) {
if (undefined != windowInfo["userWindowId"]) {
iuserWindowId = parseInt(windowInfo["userWindowId"]);
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["userWindowId"] =
iuserWindowId;
newEvent["value"]["userWindowId"] = iuserWindowId;
}
if (undefined != windowInfo["showToolbar"]) {
ishowToolbar = parseInt(windowInfo["showToolbar"]);
}
if (undefined != windowInfo["buttonIDs"]) {
ibuttonIDs = parseInt(windowInfo["buttonIDs"]);
}
if (undefined != windowInfo["mode"]) {
windowMode = windowInfo["mode"].toString();
}
if (undefined != windowInfo["fmtType"]) {
fmtType = windowInfo["fmtType"].toString();
}
if (undefined != windowInfo["width"]) {
iWidth = parseInt(windowInfo["width"]);
}
if (undefined != windowInfo["height"]) {
iHeight = parseInt(windowInfo["height"]);
}
if (undefined != windowInfo["posX"]) {
iPosX = parseInt(windowInfo["posX"]);
}
if (undefined != windowInfo["posY"]) {
iPosY = parseInt(windowInfo["posY"]);
}
if (undefined != windowInfo["videoConfLocalWindow"]) {
videoConfLocalWindow = windowInfo["videoConfLocalWindow"];
}
if (undefined != windowInfo["hide"]) {
bHide = Boolean(windowInfo["hide"]);
}
if (undefined != windowInfo["enableDrag"]) {
bEnableDrag = Boolean(windowInfo["enableDrag"]);
}
if (undefined != windowInfo["videoResizeMode"]) {
videoResizeMode = windowInfo["videoResizeMode"];
}
}
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["hide"] = bHide;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["enableDrag"] = bEnableDrag;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["showToolbar"] = ishowToolbar;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["buttonIDs"] = ibuttonIDs;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["width"] = iWidth;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["height"] = iHeight;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["posX"] = iPosX;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["posY"] = iPosY;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["winMode"] = windowMode;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["fmtType"] = fmtType;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["direction"] = "in";
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["rsp"] = event["rsp"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["videoConfLocalWindow"] = videoConfLocalWindow;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]]["value"]["videoResizeMode"] = videoResizeMode;
if (0 != iuserWindowId) {
param =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"hide\": {7}, \"enableDrag\":{8}, \"scrollX\": {9}, \"scrollY\":{10}, \"showToolbar\": {11}, \"buttonIDs\": {12}, \"userWindowId\": {13}, \"videoResizeMode\": {15} }, \"reqId\":\"{14}\" }"
.format(
parseInt(value["cid"]), parseInt(value["cid"]), windowMode, iWidth, iHeight, iPosX,
iPosY, bHide, bEnableDrag, 0, 0, ishowToolbar, ibuttonIDs, iuserWindowId, reqId, videoResizeMode
);
} else {
param =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"hide\": {7}, \"enableDrag\":{8}, \"scrollX\": {9}, \"scrollY\":{10}, \"showToolbar\": {11}, \"buttonIDs\": {12}, \"videoResizeMode\": {14} }, \"reqId\":\"{13}\" }"
.format(
parseInt(value["cid"]), parseInt(value["cid"]), windowMode, iWidth, iHeight, iPosX,
iPosY, bHide, bEnableDrag, 0, 0, ishowToolbar, ibuttonIDs, reqId, videoResizeMode
);
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true); //modify_by_caohui
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[value["cid"]];
if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(value["cid"], reqId);
break; //暂时不通知上层,等创建窗口成功后通知
} else if (call && call.callType == callStatusMgr.VIDEODISPATCH) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEODISPATCH, callStatusMgr.CONNECTING, event);
break; //暂时不通知上层,等创建窗口成功后通知
}
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(value["cid"], reqId);
//newEvent["value"]["calltype"] = "video";
//newEvent["value"]["src"] = "";
//newEvent["value"]["direction"] = "in";
//newEvent["value"]["ptz"] = value["ptz"];
//newEvent["value"]["mute"] = value["mute"];
//newEvent["eventName"] = "OnCallConnect";
//this.EVENT_LIST["VoiceNotify"]["OnCallConnect"](newEvent);
break;
case "3009":
// DC挂断事件
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
//停止振铃
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除视频媒体通道
var bIsNeedDestroyWindow = false;
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value["callee"]]; //视频点呼、视频监控、主动入会
var videoMediaWorkingInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
var iuserWindowId = 0;
if (undefined != windowInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["cid"]];
}
if (undefined != windowToolbarInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["callee"]];
}
if (undefined != videoMediaWorkingInfo) { //该视频窗口有业务正在使用
if (undefined != videoMediaWorkingInfo["value"]["userWindowId"]) {
iuserWindowId = videoMediaWorkingInfo["value"]["userWindowId"];
}
if (undefined != videoMediaWorkingInfo["value"]["isNeedDestroyWindow"] && true ==
videoMediaWorkingInfo["value"]["isNeedDestroyWindow"]) { //用户需要释放该视频窗口
bIsNeedDestroyWindow = true;
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[iuserWindowId.toString()];
}
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
}
if (true == bIsNeedDestroyWindow) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"isNeedDestroyWindow\":{1}, \"userWindowId\":{2}}}"
.format(
parseInt(value["cid"]), bIsNeedDestroyWindow, iuserWindowId
);
} else if (0 != iuserWindowId) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"userWindowId\":{1}}}"
.format(
parseInt(value["cid"]), iuserWindowId
);
} else {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}}"
.format(
parseInt(value["cid"])
);
}
cloudICP.util.CleanThisRepeatsMonitor(value["caller"], value["callee"]);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"][
"OnUnsubscribeConfFailure"
].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
} else if (call && call.callType == callStatusMgr.VIDEODISPATCH) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEODISPATCH, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "dispatch";
newEvent["value"]["direction"] = "in";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = event["value"]["uri"];
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "video";
newEvent["value"]["direction"] = "in";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(event["value"]);
break;
case "3008":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
cloudICP.util.callStatusMgr.delWssflowDemoMap(value["cid"]);
case "3010":
case "3013":
// 对端拒接事件
//停止振铃
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
if (undefined != windowInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["cid"]];
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除视频媒体通道
var bIsNeedDestroyWindow = false;
var windowInfo = cloudICP.util.callStatusMgr.windowInfos[value["cid"]]; //视频点呼被动接听 、被动视频入会
var windowToolbarInfo = cloudICP.util.callStatusMgr.windowInfos[value["callee"]]; //视频点呼、视频监控、主动入会
var videoMediaWorkingInfo = cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
var iuserWindowId = 0;
if (undefined != windowInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["cid"]];
}
if (undefined != windowToolbarInfo) {
delete cloudICP.util.callStatusMgr.windowInfos[value["callee"]];
}
if (undefined != videoMediaWorkingInfo) { //该视频窗口有业务正在使用
if (undefined != videoMediaWorkingInfo["value"]["userWindowId"]) {
iuserWindowId = videoMediaWorkingInfo["value"]["userWindowId"];
}
if (undefined != videoMediaWorkingInfo["value"]["isNeedDestroyWindow"] && true ==
videoMediaWorkingInfo["value"]["isNeedDestroyWindow"]) { //用户需要释放该视频窗口
bIsNeedDestroyWindow = true;
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[iuserWindowId.toString()];
}
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[value["cid"]];
}
if (true == bIsNeedDestroyWindow) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"isNeedDestroyWindow\":{1}, \"userWindowId\":{2}}}"
.format(
parseInt(value["cid"]), bIsNeedDestroyWindow, iuserWindowId
);
} else if (0 != iuserWindowId) {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}, \"userWindowId\":{1}}}"
.format(
parseInt(value["cid"]), iuserWindowId
);
} else {
param =
"{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}}"
.format(
parseInt(value["cid"])
);
}
cloudICP.util.CleanThisRepeatsMonitor(value["caller"], value["callee"]);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VIDEOCONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "true";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"][
"OnUnsubscribeConfFailure"
].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
} else if (call && call.callType == callStatusMgr.VIDEODISPATCH) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEODISPATCH, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "dispatch";
newEvent["value"]["direction"] = "in";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = event["value"]["uri"];
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "video";
newEvent["value"]["direction"] = "in";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(event["value"]);
break;
case "3011":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
newEvent["value"]["caller"] = from;
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":1, \"delay\":0, \"duration\": 0, \"playcount\":0}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEODISPATCH, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "dispatch";
newEvent["eventName"] = "OnDialInRinging";
newEvent["value"]["src"] = event["value"]["uri"];
this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"]);
break;
case "3040":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
newEvent["value"]["caller"] = from;
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEOCONF, callStatusMgr.NEW, event);
break;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VIDEODISPATCH) {
callStatusMgr.updateCallStatus(callStatusMgr.VIDEODISPATCH, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "dispatch";
newEvent["value"]["direction"] = "in";
newEvent["value"]["src"] = event["value"]["uri"];
newEvent["eventName"] = "OnConnectProceeding";
this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "video";
newEvent["value"]["direction"] = "in";
newEvent["value"]["src"] = "";
newEvent["eventName"] = "OnConnectProceeding";
this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"]);
break;
case "3045":
// 视频监控失败
// 停止振铃
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.MONITOR, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "monitor";
newEvent["eventName"] = "OnDialOutFailure";
this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"]);
break;
case "3053": //mrs notify
if (call && call.callType == callStatusMgr.VIDEOCONF && confInfo != undefined) {
newEvent["value"]["confId"] = confInfo["confInternalId"];
}
newEvent["value"]["downloadurl"] = event["value"]["downloadurl"];
newEvent["value"]["playurl"] = event["value"]["playurl"];
newEvent["value"]["recordid"] = event["value"]["recordid"];
newEvent["eventName"] = "MRSInfoNotify";
this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"]);
break;
default:
break;
}
}
}
/**
* 处理组呼通知
*/
ICPSDK_Dispatch_Event.prototype.delGroupCallNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var value = event["value"];
if (event["opt"] == "speaker") {
if (event["rsp"] == "1001") {
var retEvent = {
"eventName": "OnTalkingGroupCallStart",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"cid": event["value"]["cid"],
"from": event["value"]["from"],
"speaker": event["value"]["speaker"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallStart"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallStart"]);
} else if (event["rsp"] == "1003") {
// 组呼放权事件
var retEvent = {
"eventName": "OnTalkingGroupCallPTTSuccess",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"from": event["value"]["from"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTSuccess"]);
} else if (event["rsp"] == "1006") {
// 建立音频媒体通道
if (value["local"] != "0.0.0.0,0" && value["server"] != "0.0.0.0,0") {
let localArr = value["local"].split(",");
let serverArr = value["server"].split(",");
var user = cloudICP.userInfo["isdn"];
var peerUser = value["callee"];
if (user == peerUser) {
peerUser = value["caller"];
}
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"number\": \"{7}\",\"user\":\"{8}\", \"peerUser\":\"{9}\"}}, \"reqId\": \"{10}\"}"
.format(
parseInt(event["value"]["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0],
serverArr[1], parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(event[
"grpid"]), user, peerUser, reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
cloudICP.dispatch.group.current_groupcall_num += 1;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.GROUP, callStatusMgr.NEW, event);
// 组呼开始事件
var retEvent = {
"eventName": "OnTalkingGroupCallPTTStart",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"cid": event["value"]["cid"],
"from": event["value"]["from"],
"speaker": event["value"]["speaker"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTStart"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTStart"]);
// 判断该群组是否被静音,如果在列表中则被静音
if (cloudICP.util.includes(cloudICP.grpList, event["grpid"])) {
var meidaSDKparam = "{\"description\":\"msp_quite_audio_channel\", \"cmd\": 65543, \"param\":{\"resID\": {0}, \"peerID\": {0}, \"quiet\":true}}".format(
parseInt(event["value"]["cid"]), parseInt(event["grpid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
} else {
if (cloudICP.grpVolumeList[event["grpid"]]) {
var meidaSDKparam = "{\"description\":\"msp_set_audio_Volume\", \"cmd\": 65545, \"param\":{\"resID\": {0}, \"peerID\": {1}, \"newVolume\": {2} }}".format(
parseInt(event["value"]["cid"]), parseInt(event["grpid"]), parseFloat(cloudICP.grpVolumeList[event["grpid"]])
);
} else {
var meidaSDKparam = "{\"description\":\"msp_set_audio_Volume\", \"cmd\": 65545, \"param\":{\"resID\": {0}, \"peerID\": {1}, \"newVolume\": {2} }}".format(
parseInt(event["value"]["cid"]), parseInt(event["grpid"]), "50"
);
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(meidaSDKparam, true);
}
// 添加grpid和cid对到grdList中,用于管理组呼静音
cloudICP.grpCidList[event["grpid"]] = event["value"]["cid"];
} else if (event["rsp"] == "1011") {
// 组呼权限更新通知
var retEvent = {
"eventName": "OnTalkingGroupCallPTTNotify",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"name": event["value"]["name"],
"speaker": event["value"]["speaker"]
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTNotify"]);
} else if (event["rsp"] == "1012") {
// 无人占权事件
var retEvent = {
"eventName": "OnTalkingGroupCallPTTIdle",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
}
}
if (cloudICP.dispatch.group.isCurrentPtt["grpid"] == event["grpid"]) {
cloudICP.dispatch.group.isCurrentPtt = {
"grpid": event["isdn"],
"isPtt": false
};
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTIdle"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTIdle"]);
}
} else if (event["opt"] = "state") {
if (event["rsp"] == "1007") {
// 退出组呼成功
var callStatusMgr = cloudICP.util.callStatusMgr;
var groupCid = callStatusMgr.groupCallMgr[event["grpid"]]
// 删除音频媒体通道
var param = "{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(groupCid), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
cloudICP.dispatch.group.current_groupcall_num -= 1;
if (cloudICP.dispatch.group.isCurrentPtt["grpid"] == event["grpid"]) {
cloudICP.dispatch.group.isCurrentPtt = {
"grpid": event["grpid"],
"isPtt": false
};
}
// 组呼关闭事件
var retEvent = {
"eventName": "OnTalkingGroupCallStop",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallStop"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallStop"]);
} else if (event["rsp"] == "1008") {
// 删除音频媒体通道
var callStatusMgr = cloudICP.util.callStatusMgr;
var groupCid = callStatusMgr.groupCallMgr[event["grpid"]]
var param = "{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(groupCid), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
cloudICP.dispatch.group.current_groupcall_num -= 1;
// 组呼关闭事件
var retEvent = {
"eventName": "OnTalkingGroupCallRelease",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallRelease"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallRelease"]);
// 删除grpCidList中对应的item
delete cloudICP.grpCidList[event["grpid"]];
} else if (event["rsp"] == "1005") {
// 组呼抢权失败事件
var retEvent = {
"eventName": "OnTalkingGroupCallPTTFailure",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTFailure"]);
} else if (event["rsp"] == "1017") {
// 组呼发起失败事件
var retEvent = {
"eventName": "OnTalkingGroupCallFailure",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallFailure"]);
} else if (event["rsp"] == "1003") {
// 组呼请求事件
var retEvent = {
"eventName": "OnTalkingGroupCallPTTSuccess",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"from": event["from"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupCallPTTSuccess"]);
} else if (event["rsp"] == "1014") {
// 紧急组呼通知
var retEvent = {
"eventName": "OnTalkingGourpEmergencyCallStart",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"name": event["value"]["name"],
"speaker": event["value"]["speaker"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGourpEmergencyCallStart"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGourpEmergencyCallStart"]);
} else if (event["rsp"] == "1028") { //mrs notify
var retEvent = {
"eventName": "GroupMRSInfoNotify",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"cid": event["value"]["cid"],
"downloadurl": event["value"]["downloadurl"],
"playurl": event["value"]["playurl"],
"recordid": event["value"]["recordid"]
}
};
this.EVENT_LIST["GroupCallNotify"]["GroupMRSInfoNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["GroupMRSInfoNotify"]);
} else if (event["rsp"] == "1015") {
// 普通组呼 切换为 紧急组呼
var retEvent = {
"eventName": "OnTalkingGroupEmergencyCallUpdate",
"rsp": event["rsp"],
"value": {
"grpid": event["grpid"],
"name": event["value"]["name"],
"speaker": event["value"]["speaker"],
}
}
this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupEmergencyCallUpdate"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnTalkingGroupEmergencyCallUpdate"]);
}
}
}
/**
* 处理资源状态通知
*/
ICPSDK_Dispatch_Event.prototype.delResourceNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var opt = event["opt"];
var statusValue = event["statusvalue"];
var statusType = event["statustype"];
switch (statusType) {
case "18":
cloudICP.util.callStatusMgr.updateUserStatus(event);
var retEvent = {
"eventName": "OnUserStatusNotify",
"list": [{
"isdn": event["value"]["isdn"],
"peerid": event["value"]["peerid"],
"statustype": event["statustype"],
"statusvalue": event["statusvalue"],
"calltype": event["value"]["calltype"]
}]
};
this.EVENT_LIST["VoiceNotify"]["OnUserStatusNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnUserStatusNotify"]);
break;
case "20":
if (statusValue == "4005") {
var retEvent = {
"eventName": "OnDiscreetlistenStart",
"rsp": "0",
"value": {
"to": event["value"]["isdn"]
}
};
this.EVENT_LIST["VoiceNotify"]["OnDiscreetlistenStart"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDiscreetlistenStart"]);
} else if (statusValue == "4006") {
var retEvent = {
"eventName": "OnDiscreetlistenStop",
"rsp": "0",
"value": {
"to": event["value"]["isdn"]
}
};
this.EVENT_LIST["VoiceNotify"]["OnDiscreetlistenStop"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDiscreetlistenStop"]);
}
break;
case "21":
if (statusValue == "4026") {
var retEvent = {
"eventName": "OnTalkingGroupMemberChangeFailure",
"rsp": event["value"]["cause"],
"value": {
"grpid": event["value"]["attaching"],
"isdn": event["isdn"],
}
};
this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChangeFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChangeFailure"]);
} else if (statusValue == "4024") {
var retEvent = {
"eventName": "OnDynamicGroupChangeSuccess",
"rsp": event["value"]["cause"],
"value": {
"grpid": event["value"]["attaching"],
"isdn": event["user"],
}
};
this.EVENT_LIST["GroupNotify"]["OnDynamicGroupChangeSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnDynamicGroupChangeSuccess"]);
}
break;
case "22":
if (statusValue == "4021" || statusValue == "4022" || statusValue == "4023") {
var retEvent = {
"eventName": "OnVideoDispatchStatusNotify",
"rsp": event["statusvalue"],
"value": {
"src": event["value"]["camid"],
"peerid": event["value"]["peerid"],
}
};
this.EVENT_LIST["VideoNotify"]["OnVideoDispatchStatusNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VideoNotify"]["OnVideoDispatchStatusNotify"]);
}
break;
case "24":
if (statusValue == "4036" || statusValue == "4038" || statusValue == "4044" || statusValue == "4045") {
var retEvent = {
"eventName": "OnChangePatchGroupMemberFailure",
"rsp": "0",
"value": {
"grpid": event["isdn"],
"isdn": event["value"]["memberid"],
"rsp": event["value"]["cause"],
"opt": (statusValue == "4036" || statusValue == "4044") ? "create" : "delete"
}
};
this.EVENT_LIST["GroupNotify"]["OnChangePatchGroupMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnChangePatchGroupMemberFailure"]);
}
if (statusValue == "4035" || statusValue == "4037" ) {
var retEvent = {
"eventName": "OnChangePatchGroupMemberSucess",
"rsp": "0",
"value": {
"grpid": event["isdn"],
"isdn": event["value"]["memberid"],
"rsp": event["value"]["cause"],
"opt": statusValue == "4035" ? "create" : "delete"
}
};
this.EVENT_LIST["GroupNotify"]["OnChangePatchGroupMemberSucess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnChangePatchGroupMemberSucess"]);
}
if (statusValue == "4031" || statusValue == "4033") {
var retEvent = {
"eventName": "OnPatchGroupOptSuccess",
"rsp": "0",
"value": {
"grpid": event["isdn"],
"rsp": event["value"]["cause"],
"opt": statusValue == "4031" ? "create" : "delete"
}
};
this.EVENT_LIST["GroupNotify"]["OnPatchGroupOptSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnPatchGroupOptSuccess"]);
}
if (statusValue == "4032" || statusValue == "4034" || statusValue == "4042" || statusValue == "4043") {
//派接组创建失败
var retEvent = {
"eventName": "OnPatchGroupOptFailed",
"rsp": "0",
"value": {
"grpid": event["isdn"],
"rsp": event["value"]["cause"],
"opt": (statusValue == "4032" || statusValue == "4042") ? "create" : "delete"
}
};
this.EVENT_LIST["GroupNotify"]["OnPatchGroupOptFailed"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnPatchGroupOptFailed"]);
return;
}
break;
case "29":
var retEvent = {
"eventName": "OnVDMStatusNotify",
"rsp": event["statusvalue"]
};
this.EVENT_LIST["MSPNotify"]["OnVDMStatusNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["MSPNotify"]["OnVDMStatusNotify"]);
break;
case "30":
if (statusValue == "4090") {
// 创会成功
var retEvent = {
"eventName": "OnCreateConfSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confInternalId"],
"passcode": event["value"]["passcode"],
"unifiedAccessCode": event["value"]["unifiedAccessCode"],
"isVideo": event["value"]["isVideo"],
"url": event["value"]["url"]
}
};
cloudICP.util.callStatusMgr.updateConfInfo(retEvent["value"], true);
if (undefined != event["value"]["time"] && undefined != event["value"]["timeZone"]) {
retEvent["value"]["time"] = event["value"]["time"];
retEvent["value"]["timeZone"] = event["value"]["timeZone"];
this.EVENT_LIST["PhoneConfNotify"]["OnCreateConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCreateConfSuccess"]);
break;
} else {
this.EVENT_LIST["PhoneConfNotify"]["OnCreateConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCreateConfSuccess"]);
}
var strWindowinfo = cloudICP.util.callStatusMgr.windowInfos[2147483647];
cloudICP.util.callStatusMgr.windowInfos[event["value"]["unifiedAccessCode"]] = strWindowinfo;
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"];
var ajaxCfg = {
"type": "POST",
"url": url,
"data": {
"opt": "join",
"param": {
"confId": event["value"]["confInternalId"],
"fmt": cloudICP.util.callStatusMgr.fmt,
"video_format": cloudICP.config.cameraInfo.toString(),
"audio_format": "1",
"unifiedAccessCode": event["value"]["unifiedAccessCode"],
"passcode": event["value"]["passcode"],
"isVideo": event["value"]["isVideo"] == "1" ? "true" : "false",
"reqId": reqId
}
},
"callback": function(data) {
cloudICP.util.log(undefined, { "logLevel": "info", "logMsg": "connectToSDKServer: WebSocket message received: joinConf: " + JSON.stringify(data) });
}
}
cloudICP.util.ajax(ajaxCfg);
} else if (statusValue == "4091") {
// 创会失败
var retEvent = {
"eventName": "OnCreateConfFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": event["value"]["confInternalId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnCreateConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCreateConfFailure"]);
}
break;
case "31":
if (statusValue == "4090") {
// 结束会议成功
var retEvent = {
"eventName": "OnEndConfSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnEndConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnEndConfSuccess"]);
} else if (statusValue == "4091") {
// 结束会议失败
var retEvent = {
"eventName": "OnEndConfFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": event["value"]["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnEndConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnEndConfFailure"]);
}
break;
case "32":
if (statusValue == "4081") {
var retEvent = {
"eventName": "PushServerToken register to AAS fail",
"rsp": event["statusvalue"],
};
this.EVENT_LIST["ResourceNotify"]["OnPushConnectFail"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["ResourceNotify"]["OnPushConnectFail"]);
} else if (statusValue == "4082") {
var retEvent = {
"eventName": "Get PushServerToken fail",
"rsp": event["statusvalue"],
};
this.EVENT_LIST["ResourceNotify"]["OnPushGetTokenFail"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["ResourceNotify"]["OnPushGetTokenFail"]);
} else if (statusValue == "4083") {
var retEvent = {
"eventName": "PushServerToken register to AAS success",
"rsp": event["statusvalue"],
};
this.EVENT_LIST["ResourceNotify"]["OnPushConnectSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["ResourceNotify"]["OnPushConnectSuccess"]);
}
break;
case "34":
var value = event["value"];
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryConferenceByIdSuccess",
"rsp": "0",
"value": {
"confExternalId": value["confExternalId"],
"confInternalId": value["confInternalId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConferenceByIdSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConferenceByIdSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryConferenceByIdFailure",
"rsp": event["value"]["rsp"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConferenceByIdFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConferenceByIdFailure"]);
}
break;
case "35":
var value = event["value"];
if (value["msgType"] == "ConfMuteMember") {
if (value["params"] == "mute") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnMuteConfMemberSuccess",
"rsp": "0",
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfMemberSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnMuteConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfMemberFailure"]);
}
} else if (value["params"] == "unmute") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnUnmuteConfMemberSuccess",
"rsp": "0",
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfMemberSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnUnmuteConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfMemberFailure"]);
}
}
} else if (value["msgType"] == "SetFloor" || value["msgType"] == "ConfFreeMode") {
var IsSpoken = "false";
if (value["msgType"] == "SetFloor") {
IsSpoken = "true"
}
if (value["params"] == "isSpoken") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnSetSpokenMemberSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"isSpoken": IsSpoken
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnSetSpokenMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSetSpokenMemberSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnSetSpokenMemberFailure",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
"value": {
"confId": value["confId"],
"isSpoken": IsSpoken
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnSetSpokenMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSetSpokenMemberFailure"]);
}
}
} else if (value["msgType"] == "ConfMuteConf") {
if (value["params"] == "mute") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnMuteConfSuccess",
"rsp": "0",
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnMuteConfFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnMuteConfFailure"]);
}
break;
} else if (value["params"] == "unmute") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnUnmuteConfSuccess",
"rsp": "0",
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnUnmuteConfFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnmuteConfFailure"]);
}
break;
}
} else if (value["msgType"] == "ConfBroadcastMixPicture") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnBroadcastMixPictureSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastMixPictureSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastMixPictureSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnBroadcastMixPictureFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastMixPictureFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastMixPictureFailure"]);
}
} else if (value["msgType"] == "ConfCancelBroadcastMixPicture") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnCancelBroadcastMixPictureSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastMixPictureSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastMixPictureSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnCancelBroadcastMixPictureFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastMixPictureFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastMixPictureFailure"]);
}
} else if (value["msgType"] == "ConfBroadcastPicture") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnBroadcastConfMemberSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastConfMemberSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnBroadcastConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnBroadcastConfMemberFailure"]);
}
} else if (value["msgType"] == "ConfCancelBroadcastPicture") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnCancelBroadcastConfMemberSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastConfMemberSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnCancelBroadcastConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCancelBroadcastConfMemberFailure"]);
}
} else if (value["msgType"] == "ConfWatchMember") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnWatchConfMemberSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnWatchConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnWatchConfMemberSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnWatchConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnWatchConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnWatchConfMemberFailure"]);
}
} else if (value["msgType"] == "ConfWatchMixPicture") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnWatchMixPictureSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnWatchMixPictureSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnWatchMixPictureSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnWatchMixPictureFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
"member": value["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnWatchMixPictureFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnWatchMixPictureFailure"]);
}
} else if (value["msgType"] == "ConfQueryConfListByAttendee") {
if (statusValue == "4090") {
var confInfos = [];
var retEvent = {};
if (!!value["confInfos"]) {
for (var index = 0; index < value["confInfos"].length; index++) {
confInfos.push({
"confId": value["confInfos"][index]["confInternalId"],
"isVideo": value["confInfos"][index]["isVideo"],
"passcode": value["confInfos"][index]["passcode"],
"unifiedAccessCode": value["confInfos"][index]["unifiedAccessCode"],
"url": value["confInfos"][index]["url"],
});
delete value["confInfos"][index].confExternalId;
var tmp = value["confInfos"][index]["confInternalId"];
value["confInfos"][index]["confId"] = tmp;
delete value["confInfos"][index].confInternalId;
}
retEvent = {
"eventName": "OnQueryConfListByAttendeeResult",
"rsp": "0",
"value": {
"confInfos": value["confInfos"],
"totalNum" : value["totalNum"]
}
};
} else {
retEvent = {
"eventName": "OnQueryConfListByAttendeeResult",
"rsp": "0",
"value": {
"confInfos": []
}
};
}
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfListByAttendeeResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfListByAttendeeResult"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryConfListByAttendeeResult",
"rsp": "-1",
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfListByAttendeeResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfListByAttendeeResult"]);
}
} else if (value["msgType"] == "ConfAddMember") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnAddConfMembersSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnAddConfMembersSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnAddConfMembersSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnAddConfMembersFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnAddConfMembersFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnAddConfMembersFailure"]);
}
} else if (value["msgType"] == "SetChairman") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfSetChairmanSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
"chairman": value["chairman"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfSetChairmanSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfSetChairmanSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfSetChairmanFailure",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
"value": {
"confId": value["confId"],
"chairman": value["chairman"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfSetChairmanFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfSetChairmanFailure"]);
}
} else if (value["msgType"] == "AddressBook"){
if (statusValue == "4090" && value["pageCount"] != 0) {
var retEvent = {
"eventName": "OnQueryVDCAddressBookSuccess",
"rsp": "0",
"userCount": value["userCount"],
"pageCount": value["pageCount"],
"totalPages": value["TotalPages"],
"totalElements": value["TotalElements"],
"value": {
"list": value["list"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookSuccess"]);
}
else if (statusValue == "4090" && value["pageCount"] == 0)
{
var retEvent = {
"eventName": "OnQueryVDCAddressBookSuccess",
"rsp": "0",
"userCount": value["userCount"],
"value": {
"list": value["list"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookSuccess"]);
}
if (statusValue == "4091" && value["pageCount"] != 0) {
var retEvent = {
"eventName": "OnQueryVDCAddressBookFailure",
"rsp": event["value"]["rsp"],
"userCount": value["userCount"],
"pageCount": value["pageCount"],
"retMsg": event["value"]["retMsg"],
"value": {
"list": value["list"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookFailure"]);
}
else if (statusValue == "4091" && value["pageCount"] == 0) {
var retEvent = {
"eventName": "OnQueryVDCAddressBookFailure",
"rsp": event["value"]["rsp"],
"userCount": value["userCount"],
"pageCount": value["pageCount"],
"retMsg": event["value"]["retMsg"],
"value": {
"list": value["list"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryVDCAddressBookFailure"]);
}
} else if (value["msgType"] == "queryConferenceList") {
if (statusValue == "4090" && value["totalNum"] != 0) {
var retEvent = {
"eventName": "OnRecvConfListNotifySuccess",
"rsp": event["value"]["rsp"],
"totalNum": value["totalNum"],
"value": {
"list": value["conferences"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnRecvConfListNotifySuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnRecvConfListNotifySuccess"]);
} else if (statusValue == "4090" && value["totalNum"] == 0) {
var retEvent = {
"eventName": "OnRecvConfListNotifySuccess",
"rsp": event["value"]["rsp"],
"totalNum": "0",
"value": {
"list": ""
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnRecvConfListNotifySuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnRecvConfListNotifySuccess"]);
} else {
var retEvent = {
"eventName": "OnRecvConfListNotifyFailure",
"rsp": event["value"]["rsp"],
"totalNum": "0",
"retMsg": event["value"]["retMsg"],
"value": {
"list": ""
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnRecvConfListNotifyFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnRecvConfListNotifyFailure"]);
}
}else if (value["msgType"] == "queryConferenceInfo") {
if (statusValue == "4090" && value["totalNum"] != 0) {
var retEvent = {
"eventName": "OnRecvQueryConfInfoNotifySuccess",
"rsp": event["value"]["rsp"],
"totalNum": value["totalNum"],
"value": {
"list": value["conferences"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnRecvQueryConfInfoNotifySuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnRecvQueryConfInfoNotifySuccess"]);
} else if (statusValue == "4090" && value["totalNum"] == 0) {
var retEvent = {
"eventName": "OnRecvQueryConfInfoNotifySuccess",
"rsp": event["value"]["rsp"],
"totalNum": "0",
"value": {
"list": ""
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnRecvQueryConfInfoNotifySuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnRecvQueryConfInfoNotifySuccess"]);
} else {
var retEvent = {
"eventName": "OnRecvQueryConfInfoNotifyFailure",
"rsp": event["value"]["rsp"],
"totalNum": "0",
"retMsg": event["value"]["retMsg"],
"value": {
"list": ""
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnRecvQueryConfInfoNotifyFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnRecvQueryConfInfoNotifyFailure"]);
}
} else if (value["msgType"] == "queryaddressbook") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryConfereeAddressBookSuccess",
"rsp": "0",
"userCount": value["userCount"],
"value": {
"list": value["list"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfereeAddressBookSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfereeAddressBookSuccess"]);
}
if (statusValue == "4091" && value["userCount"] != 0) {
var retEvent = {
"eventName": "OnQueryConfereeAddressBookFailure",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
"userCount": value["userCount"],
"value": {
"list": value["list"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfereeAddressBookFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfereeAddressBookFailure"]);
} else if (statusValue == "4091" && value["userCount"] == 0) {
var retEvent = {
"eventName": "OnQueryConfereeAddressBookFailure",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfereeAddressBookFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfereeAddressBookFailure"]);
}
} else if (value["msgType"] == "queryCasConfInfos") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryCasConfInfosSuccess",
"rsp": "0",
"value": {
"name": value["Content"]["name"],
"isWeLink": value["Content"]["isWeLink"],
"confCasId": value["Content"]["confCasId"],
"childConf": value["Content"]["childConf"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryCasConfInfosSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryCasConfInfosSuccess"]);
}
if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryCasConfInfosFailure",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryCasConfInfosFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryCasConfInfosFailure"]);
}
} else if (value["msgType"] == "queryOrgTree") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryOrgTreeSuccess",
"rsp": "0",
"value": event["value"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryOrgTreeSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryOrgTreeSuccess"]);
}
if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryOrgTreeFail",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryOrgTreeFail"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryOrgTreeFail"]);
}
} else if (value["msgType"] == "queryAreaOrgInfo") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryAreaOrgInfoSuccess",
"rsp": "0",
"value": event["value"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryAreaOrgInfoSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryAreaOrgInfoSuccess"]);
}
if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryAreaOrgInfoFail",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryAreaOrgInfoFail"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryAreaOrgInfoFail"]);
}
} else if (value["msgType"] == "queryConfURL") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryConfURLSuccess",
"rsp": "0",
"value": event["value"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfURLSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfURLSuccess"]);
}
if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryConfURLFailure",
"rsp": event["value"]["rsp"],
"retMsg": event["value"]["retMsg"],
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfURLFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfURLFailure"]);
}
}
break;
case "36":
var retEvent = {
"eventName": "OnQueryVWallDisplayMatrixInfoResult",
"rsp": "0",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryVWallDisplayMatrixInfoResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryVWallDisplayMatrixInfoResult"]);
break;
case "37":
if (statusValue == "4090") {
// 上墙成功
var retEvent = {
"eventName": "OnStartConfUploadWallSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confid"],
"number": event["value"]["number"],
"layerInfo": event["value"]["layerInfo"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnStartConfUploadWallSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnStartConfUploadWallSuccess"]);
} else if (statusValue == "4091") {
// 上墙失败
var retEvent = {
"eventName": "OnStartConfUploadWallFailure",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnStartConfUploadWallFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnStartConfUploadWallFailure"]);
}
break;
case "38":
if (statusValue == "4090") {
// 停止上墙成功
var retEvent = {
"eventName": "OnStopConfUploadWallSuccess",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnStopConfUploadWallSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnStopConfUploadWallSuccess"]);
} else if (statusValue == "4091") {
// 停止上墙失败
var retEvent = {
"eventName": "OnStopConfUploadWallFailure",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnStopConfUploadWallFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnStopConfUploadWallFailure"]);
}
break;
case "39":
// 当广播多画面的时候,smc传回的braodcast参数为"(%CP)",需要改成"mix"
if (event["value"]["confStatus"]["broadcast"] == "(%CP)") {
event["value"]["confStatus"]["broadcast"] = "mix";
}
cloudICP.util.callStatusMgr.updateConfInfo(event);
event["value"]["confStatus"]["confName"] = event["value"]["confStatus"]["name"];
delete event["value"]["confStatus"]["name"];
// DTS2023060112941 判断如果会议主席不是自己的话,删除 windowInfos[2147483647] 这个字段,如果会议主席切换到自己,将windowInfos[2147483647]赋值
if (event["value"]["confStatus"]["chair"] && cloudICP.userInfo["isdn"] == event["value"]["confStatus"]["chair"]) {
if (undefined == cloudICP.util.callStatusMgr.windowInfos[2147483647]) {
cloudICP.util.callStatusMgr.windowInfos[2147483647] = "1"; // 此处的1是任意值,不存在任何意义
}
} else {
if (undefined != cloudICP.util.callStatusMgr.windowInfos[2147483647]) {
delete cloudICP.util.callStatusMgr.windowInfos[2147483647];
}
}
// 成员信息推送
var retEvent = {
"eventName": "OnConfStatusNotify",
"rsp": "0",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfStatusNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfStatusNotify"]);
break;
case "40":
if (statusValue == "4090") {
// 订阅会议成功
var retEvent = {
"eventName": "OnQueryConfWallInfoResult",
"rsp": "0",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfWallInfoResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfWallInfoResult"]);
} else if (statusValue == "4091") {
// 订阅会议失败
var retEvent = {
"eventName": "OnQueryConfWallInfoResult",
"rsp": "-1",
"value": ""
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfWallInfoResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryConfWallInfoResult"]);
}
break;
case "41":
if (statusValue == "4090") {
// 订阅会议成功
var retEvent = {
"eventName": "OnSubscribeConfSuccess",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfSuccess"]);
} else if (statusValue == "4091") {
// 订阅会议失败
var retEvent = {
"eventName": "OnSubscribeConfFailure",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"]);
}
break;
case "42":
if (statusValue == "4090") {
// 去订阅会议成功
var retEvent = {
"eventName": "OnUnsubscribeConfSuccess",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfSuccess"]);
} else if (statusValue == "4091") {
// 去订阅会议失败
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": "0",
};
this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
break;
case "43":
if (statusValue == "4090") {
// 订阅会议成功
var retEvent = {
"eventName": "OnHangupConfMemberSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confId"],
"member": event["value"]["members"]
},
};
this.EVENT_LIST["PhoneConfNotify"]["OnHangupConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnHangupConfMemberSuccess"]);
} else if (statusValue == "4091") {
// 订阅会议失败
var retEvent = {
"eventName": "OnHangupConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": event["value"]["confId"],
"member": event["value"]["members"]
},
};
this.EVENT_LIST["PhoneConfNotify"]["OnHangupConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnHangupConfMemberFailure"]);
}
break;
case "44":
if (statusValue == "4090") {
// 重呼成员成功
var retEvent = {
"eventName": "OnCallConfMemberSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confId"],
"member": event["value"]["members"]
},
};
this.EVENT_LIST["PhoneConfNotify"]["OnCallConfMemberSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCallConfMemberSuccess"]);
} else if (statusValue == "4091") {
// 重呼成员失败
var retEvent = {
"eventName": "OnCallConfMemberFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": event["value"]["confId"],
"member": event["value"]["members"]
},
};
this.EVENT_LIST["PhoneConfNotify"]["OnCallConfMemberFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnCallConfMemberFailure"]);
}
break;
case "45":
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnQueryRecordURLByConfIDResult",
"rsp": "0",
"value": {
"confId": event["value"]["confInternalId"],
"url": event["value"]["url"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryRecordURLByConfIDResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryRecordURLByConfIDResult"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnQueryRecordURLByConfIDResult",
"rsp": "-1",
"value": {
"confId": "",
"url": ""
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryRecordURLByConfIDResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryRecordURLByConfIDResult"]);
}
break;
case "46":
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnDelConfMembersSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confId"],
"member": event["value"]["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnDelConfMembersSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnDelConfMembersSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnDelConfMembersFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": event["value"]["confId"],
"member": event["value"]["members"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnDelConfMembersFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnDelConfMembersFailure"]);
}
break;
case "47":
if (statusValue == "4090") {
// 查询多画面成功
var retEvent = {
"eventName": "OnQueryContinuousPresenceInfoResult",
"rsp": "0",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryContinuousPresenceInfoResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryContinuousPresenceInfoResult"]);
} else if (statusValue == "4091") {
// 查询多画面失败
var retEvent = {
"eventName": "OnQueryContinuousPresenceInfoResult",
"rsp": "-1",
"value": ""
};
this.EVENT_LIST["PhoneConfNotify"]["OnQueryContinuousPresenceInfoResult"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnQueryContinuousPresenceInfoResult"]);
}
break;
case "48": {
var retEvent = {
"eventName": "OnApplyFloor",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnApplyFloor"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnApplyFloor"]);
}
break;
case "50":
if (statusValue == "4092") {
var retEvent = {
"eventName": "ResultOfMappingBetweenIsdn2Gbid",
"value": event["value"]
};
this.EVENT_LIST["ResourceNotify"]["ResultOfMappingBetweenIsdn2Gbid"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["ResourceNotify"]["ResultOfMappingBetweenIsdn2Gbid"]);
}
break;
case "51":
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfProlongTimeSuccess",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfProlongTimeSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfProlongTimeSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfProlongTimeFailure",
"value": event["value"]
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfProlongTimeFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfProlongTimeFailure"]);
}
break;
case "52":
var value = event["value"];
if (value["params"] == "lock") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfLockVideoSourceSuccess",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfLockVideoSourceSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfLockVideoSourceSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfLockVideoSourceFailure",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfLockVideoSourceFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfLockVideoSourceFailure"]);
}
} else if (value["params"] == "unlock") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfUnLockVideoSourceSuccess",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockVideoSourceSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockVideoSourceSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfUnLockVideoSourceFailure",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockVideoSourceFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockVideoSourceFailure"]);
}
}
break;
case "53":
var value = event["value"];
if (value["params"] == "lock") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfLockConfSuccess",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfLockConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfLockConfSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfLockConfFailure",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfLockConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfLockConfFailure"]);
}
} else if (value["params"] == "unlock") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfUnLockConfSuccess",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockConfSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfUnLockConfFailure",
"rsp": value["rsp"],
"value": {
"confId": value["confId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfUnLockConfFailure"]);
}
}
break;
case "55":
if (statusValue == "4090") {
// 修改会议成功
var retEvent = {
"eventName": "OnModifyConfSuccess",
"rsp": "0",
"value": {
"confId": event["value"]["confInternalId"],
"passcode": event["value"]["passcode"],
"unifiedAccessCode": event["value"]["unifiedAccessCode"],
"isVideo": event["value"]["isVideo"]
}
};
if (undefined != event["value"]["time"] && undefined != event["value"]["timeZone"]) {
retEvent["value"]["time"] = event["value"]["time"];
retEvent["value"]["timeZone"] = event["value"]["timeZone"];
this.EVENT_LIST["PhoneConfNotify"]["OnModifyConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnModifyConfSuccess"]);
} else {
this.EVENT_LIST["PhoneConfNotify"]["OnModifyConfSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnModifyConfSuccess"]);
}
} else if (statusValue == "4091") {
// 修改会议失败
var retEvent = {
"eventName": "OnModifyConfFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": event["value"]["confInternalId"]
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnModifyConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnModifyConfFailure"]);
}
break;
case "56":
var value = event["value"];
if (value["msgType"] == "setTextTips") {
if (statusValue == "4090") {
var retEvent = {
"eventName": "OnConfTextTipsSuccess",
"rsp": "0",
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfTextTipsSuccess"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfTextTipsSuccess"]);
} else if (statusValue == "4091") {
var retEvent = {
"eventName": "OnConfTextTipsFailure",
"rsp": event["value"]["rsp"],
"value": {
"confId": value["confId"],
}
};
this.EVENT_LIST["PhoneConfNotify"]["OnConfTextTipsFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfTextTipsFailure"]);
}
}
break;
default:
break;
}
if (undefined != event["rid"]) {
delete event.rid;
}
if ("4025" == event["statusvalue"] && "21" == event["statustype"]) {
//动态组创建失败
var cause = "";
if (event["value"]) {
cause = event["value"]["cause"];
}
var retEvent = {
"eventName": "OnDynamicGroupOptFailed",
"grpid": event["value"]["attaching"],
"rsp": cause
};
this.EVENT_LIST["GroupNotify"]["OnDynamicGroupOptFailed"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnDynamicGroupOptFailed"]);
return;
} else if (undefined != event["list"]) {
for (var index = 0; index < event["list"].length; index++) {
event["list"][index]["peerid"] = "";
}
var retEvent = {
"eventName": "OnUserStatusNotify",
"list": event["list"]
}
this.EVENT_LIST["VoiceNotify"]["OnUserStatusNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnUserStatusNotify"]);
}
if (event["statustype"] == "3") {
var retEvent = {
"eventName": "OnGroupCallStatusNotify",
"rsp": event["statusvalue"],
"value": {
"grpid": event["isdn"],
"name": event["value"]["name"],
"speaker": event["value"]["speaker"]
}
}
if (event["value"]["speaker"] == cloudICP.userInfo["isdn"]) {
cloudICP.dispatch.group.isCurrentPtt = {
"grpid": event["isdn"],
"isPtt": true
};
} else {
if (cloudICP.dispatch.group.isCurrentPtt["grpid"] == event["isdn"]) {
cloudICP.dispatch.group.isCurrentPtt = {
"grpid": event["isdn"],
"isPtt": false
};
}
}
this.EVENT_LIST["GroupCallNotify"]["OnGroupCallStatusNotify"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupCallNotify"]["OnGroupCallStatusNotify"]);
}
}
/**
* 群组管理
*/
ICPSDK_Dispatch_Event.prototype.delCommonNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var mo = event["mo"];
if (undefined == mo) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delCommonNotify: mo is undefined."
});
return;
}
var opt = event["opt"];
if (undefined == opt) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delCommonNotify: opt is undefined."
});
return;
}
var value = event["value"];
if (undefined != value && undefined != value["servermode"]) {
delete value.servermode;
}
if (undefined != value["vpnid"]) {
delete value["vpnid"];
}
if (mo == "3") {
var newEvent = {
"eventName": "OnTalkingGroupStatusChange",
"opt": opt,
"groupinfo": value
}
this.EVENT_LIST["GroupNotify"]["OnTalkingGroupStatusChange"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnTalkingGroupStatusChange"]);
} else if (mo == "29") {
//派接组的新建和删除
if (undefined == value) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delCommonNotify: value is undefined."
});
return;
}
if (undefined != value["vpnid"]) {
delete value["vpnid"];
}
var newEvent = {
"eventName": "OnPatchGroupStatusChange",
"opt": opt,
"groupinfo": value
}
this.EVENT_LIST["GroupNotify"]["OnPatchGroupStatusChange"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnPatchGroupStatusChange"]);
} else if (mo == "7") {
//动态组的成员的新增和删除
if (undefined == value) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delCommonNotify: value is undefined."
});
return;
}
// var newEvent = {
// "eventName": "OnTalkingGroupMemberChange",
// "opt": opt,
// "groupinfo": value
// }
// this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChange"](newEvent);
// sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChange"]);
} else if (mo == "30") {
//派接组的成员的新增和删除
if (undefined == value) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delCommonNotify: value is undefined."
});
return;
}
var newEvent = {
"eventName": "OnPatchGroupMemberChange",
"opt": opt,
"groupinfo": value
}
this.EVENT_LIST["GroupNotify"]["OnPatchGroupMemberChange"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnPatchGroupMemberChange"]);
} else if (mo == "6") {
//群组成员配置更新
var newEvent = {
"eventName": "OnTalkingGroupMemberChange",
"opt": opt,
"groupinfo": value
}
this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChange"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChange"]);
} else if (mo == "5") {
//群组终端用户配置更新
var newEvent = {
"eventName": "OnTalkingGroupMemberChange",
"opt": opt,
"groupinfo": value
}
this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChange"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["GroupNotify"]["OnTalkingGroupMemberChange"]);
}
}
/**
* 语音事件通知
*/
ICPSDK_Dispatch_Event.prototype.delVoiceNotify = function(event) {
var reqId = event.reqId;
if (reqId == null || reqId == undefined) {reqId = "0";}
var rsp = event["rsp"];
if (undefined == rsp) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delVoiceNotify: rsp is undefined."
});
return;
}
var value = event["value"];
if (undefined == value) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "delVoiceNotify: value is undefined."
});
return;
}
// 建立音频媒体通道
if (value["local"] != undefined && value["server"] != value["local"] != undefined &&
"0.0.0.0,0" && value["server"] != "0.0.0.0,0") {
let localArr = value["local"].split(",");
let serverArr = value["server"].split(",");
var user = cloudICP.userInfo["isdn"];
var peerUser = value["callee"];
if (user == peerUser) {
peerUser = value["caller"];
}
var callNumber;
if (event["value"]["callee"] != cloudICP.userInfo["isdn"]) {
callNumber = event["value"]["callee"]
} else {
callNumber = event["value"]["caller"];
}
var paramForAudio =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}}".format(
parseInt(value["cid"])
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(paramForAudio, true);
var param
var callStatusMgr = cloudICP.util.callStatusMgr;
var audioFile = callStatusMgr.getBroadcastFile(peerUser);
var audioBase64 = callStatusMgr.getBroadcastBase64(peerUser);
if (audioFile) {
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"user\":\"{8}\", \"peerUser\":\"{9}\", \"audioFile\": \"{10}\"}}, \"reqId\": \"{11}\"}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[1],
parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(callNumber), user, peerUser,
audioFile, reqId
)
callStatusMgr.deleteBroadcastFile(peerUser);
} else if (audioBase64) {
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var param = "{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"user\":\"{8}\", \"peerUser\":\"{9}\", \"audioBase64\": \"{10}\"}}}".format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[1], parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(callNumber), user, peerUser, audioBase64
)
callStatusMgr.deleteBroadcastBase64(peerUser);
} else {
var param =
"{\"description\":\"msp_create_audio_channel\", \"cmd\": 65537, \"param\":{\"resID\":{0}, \"mediaInfo\":{\"localIP\":\"{1}\", \"localPort\":{2}, \"remoteIP\":\"{3}\",\"remotePort\":{4}, \"playload\":{5}, \"ssrc\":{6}, \"user\":\"{8}\", \"peerUser\":\"{9}\"}}, \"reqId\": \"{10}\"}"
.format(
parseInt(value["cid"]), cloudICP.config.localIP, localArr[1], serverArr[0], serverArr[1],
parseInt(value["audio"]), parseInt(value["audio_ssrc"]), parseInt(callNumber), user, peerUser, reqId
)
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
var to;
if (undefined != value["to"]) {
if ("" != value["to"]) {
to = value["to"];
} else if (undefined != value["callee"]) {
to = value["callee"];
}
delete value.to;
} else {
to = value["callee"];
}
var from;
if (undefined != value["from"] && value["from"] != "" && value["caller"] != value["from"]) {
from = value["from"];
} else {
from = value["caller"];
}
if (undefined != value["from"]) {
delete value.from;
}
var local = value["local"];
if (undefined != local) {
delete value.local;
}
var server = value["server"];
if (undefined != server) {
delete value.server;
}
var sipcode = value["sipcode"];
if (undefined != sipcode) {
delete value.sipcode;
}
var targeter = value["targeter"];
if (undefined != targeter) {
delete value.targeter;
}
var transfer = value["transfer"];
if (undefined != transfer) {
delete value.transfer;
}
var inserter = value["inserter"];
if (undefined != inserter) {
delete value.inserter;
}
var audio = value["audio"];
if (undefined != audio) {
delete value.audio;
}
var audio_ssrc = value["audio_ssrc"];
if (undefined != audio_ssrc) {
delete value.audio_ssrc;
}
var discreet_listenee = value["discreetListenee"];
if (undefined != discreet_listenee) {
delete value.discreetListenee;
}
var sub_type = value["sub_type"];
if (undefined != sub_type) {
delete value.sub_type;
}
var confInfo = value["confInfo"];
if (undefined != confInfo) {
delete value.confInfo;
}
var listentype = value["listentype"];
if (undefined != confInfo) {
delete value.listentype;
}
var newEvent = {
"eventName": "",
"rsp": rsp,
"value": value
}
var caller = value["caller"];
if (caller == cloudICP.userInfo["isdn"]) {
//表示呼出
switch (rsp) {
case "2003":
// 停止振铃音
value["callee"] = to;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfConnect";
this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"]);
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "sub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnSubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"]);
} else {
cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] = true;
}
}
}
cloudICP.util.ajax(ajaxCfg);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
} else if (call && call.callType == callStatusMgr.AMBIENCE) {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.CONNECTING, event);
newEvent["value"]["calltype"] = "ambience";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.CONNECTING, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
case "2005":
value["callee"] = to;
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.NEW, event, confInfo);
break;
}
if (sub_type && sub_type == "1") {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "halfdial";
} else if (listentype && listentype == "1") {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "ambience";
} else {
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "voice";
}
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutProceeding";
this.EVENT_LIST["VoiceNotify"]["OnDialOutProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutProceeding"]);
break;
case "2006":
// 播放回铃音
value["callee"] = to;
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":1, \"delay\":0, \"duration\": 0, \"playcount\":0}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
if (local == "0.0.0.0,0" || server == "0.0.0.0,0" || value["local"] == null) {
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RINGING, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfDialOutRinging";
this.EVENT_LIST["PhoneConfNotify"]["OnConfDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfDialOutRinging"]);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"]);
break;
} else if (call && call.callType == callStatusMgr.AMBIENCE) {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "ambience";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutRinging"]);
break;
case "2009":
// 停止振铃音
value["callee"] = to;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
} else if (call && call.callType == callStatusMgr.AMBIENCE) {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "ambience";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
case "2010":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
// 停止振铃音
value["callee"] = to;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
} else if (call && call.callType == callStatusMgr.AMBIENCE) {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "ambience";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
case "2013":
case "2016":
case "2017":
case "2018":
case "2019":
case "2024":
case "2049":
case "2052":
case "2023":
case "2033":
case "2048":
// 停止振铃音
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
var paramForAudio =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}}"
.format(
parseInt(value["cid"])
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(paramForAudio, true);
var user = cloudICP.userInfo["isdn"];
var peerUser = value["callee"];
if (user == peerUser) {
peerUser = value["caller"];
}
cloudICP.util.callStatusMgr.deleteBroadcastFile(peerUser);
cloudICP.util.callStatusMgr.deleteBroadcastBase64(peerUser);
if (rsp == "2013") {
//对端正在通话中
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":3, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "2016" || rsp == "2024" || rsp == "2052") {
//对端无法接通
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":4, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "2018") {
//对端号码不存在
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":5, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "") {
//本段没有权限
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":6, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "") {
//对端没有权限
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":7, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "2017") {
//对端无应答
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":8, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "") {
//对端正忙
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":9, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
} else if (rsp == "2048" || rsp == "2023" || rsp == "2033" || rsp == "2049") {
//拨打业务无法支持
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":10, \"delay\":0, \"duration\": 0, \"playcount\":1}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RELEASE, event, confInfo);
newEvent["value"]["confId"] = confInfo["confInternalId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfFailure";
this.EVENT_LIST["PhoneConfNotify"]["OnConfFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfFailure"]);
break;
}
if (listentype && listentype == "1") {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "ambience";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutFailure";
this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"]);
break;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutFailure";
this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialOutFailure";
this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialOutFailure"]);
break;
break;
case "2041":
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.NEW, event);
newEvent["eventName"] = "OnHalfDialConnectProceeding";
this.EVENT_LIST["VoiceNotify"]["OnHalfDialConnectProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHalfDialConnectProceeding"]);
break;
case "2042":
// 关闭麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":true}}"
.format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
newEvent["eventName"] = "OnStartRecvHalfDial";
this.EVENT_LIST["VoiceNotify"]["OnStartRecvHalfDial"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnStartRecvHalfDial"]);
break;
case "2043":
// 关闭麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":true}}"
.format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam);
// var callStatusMgr = cloudICP.util.callStatusMgr;
// callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["eventName"] = "OnStopRecvHalfDial";
this.EVENT_LIST["VoiceNotify"]["OnStopRecvHalfDial"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnStopRecvHalfDial"]);
break;
case "2045":
// 打开麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":false}}"
.format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
newEvent["eventName"] = "OnHalfDialSuccess";
this.EVENT_LIST["VoiceNotify"]["OnHalfDialSuccess"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHalfDialSuccess"]);
break;
case "2046":
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["eventName"] = "OnHalfDialFailure";
this.EVENT_LIST["VoiceNotify"]["OnHalfDialFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHalfDialFailure"]);
break;
case "2054":
newEvent["eventName"] = "OnHoldSuccess";
this.EVENT_LIST["VoiceNotify"]["OnHoldSuccess"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHoldSuccess"]);
break;
case "2055":
newEvent["eventName"] = "OnUnholdSuccess";
this.EVENT_LIST["VoiceNotify"]["OnUnholdSuccess"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnUnholdSuccess"]);
break;
case "2056":
newEvent["eventName"] = "OnReceiveDTMF";
this.EVENT_LIST["VoiceNotify"]["OnReceiveDTMF"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnReceiveDTMF"]);
break;
case "2057": //mrs notify
newEvent["eventName"] = "MRSInfoNotify";
this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"]);
break;
case "2012":
newEvent["eventName"] = "OnTalkingPrempted";
this.EVENT_LIST["VoiceNotify"]["OnTalkingPrempted"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnTalkingPrempted"]);
break;
}
} else {
//表示呼入
switch (rsp) {
case "2003":
// 停止振铃音
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfConnect";
this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"]);
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "sub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnSubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"]);
} else {
cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] = true;
}
}
}
cloudICP.util.ajax(ajaxCfg);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
} else if (call && call.callType == callStatusMgr.AMBIENCE) {
callStatusMgr.updateCallStatus(callStatusMgr.AMBIENCE, callStatusMgr.CONNECTING, event);
newEvent["value"]["calltype"] = "ambience";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
case "2002":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
if (cloudICP.util.ringType != "1") {
// 播放振铃音
newEvent["value"]["caller"] = from;
var param =
"{\"description\":\"msp_play_tone\", \"cmd\": 131075, \"param\":{\"cid\": {0}, \"type\":0, \"delay\":0, \"duration\": 0, \"playcount\":0}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
}
if (discreet_listenee != undefined && discreet_listenee != "0" && discreet_listenee != "") {
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.DISCREET, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "discreetlisten";
newEvent["value"]["src"] = discreet_listenee;
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialInRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"]);
break;
};
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RINGING, event, confInfo);
newEvent["value"]["confId"] = confInfo["confInternalId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfDialInRinging";
this.EVENT_LIST["PhoneConfNotify"]["OnConfDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfDialInRinging"]);
break;
}
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["src"] = "";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialInRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RINGING, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["src"] = "";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnDialInRinging";
this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnDialInRinging"]);
break;
case "2007":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
// 停止振铃音
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
if (discreet_listenee != undefined && discreet_listenee != "0" && discreet_listenee != "") {
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.DISCREET, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["calltype"] = "discreetlisten";
newEvent["value"]["src"] = discreet_listenee;
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
};
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF && confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.CONNECTING, event,
confInfo);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfConnect";
this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfConnect"]);
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "sub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnSubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnSubscribeConfFailure"]);
} else {
cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] = true;
}
}
}
cloudICP.util.ajax(ajaxCfg);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["value"]["ptz"] = "";
newEvent["value"]["mute"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.CONNECTING, event);
callStatusMgr.holdCall(event["value"]["cid"], reqId);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallConnect";
this.EVENT_LIST["VoiceNotify"]["OnCallConnect"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallConnect"]);
break;
case "2040":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
newEvent["value"]["caller"] = from;
var callStatusMgr = cloudICP.util.callStatusMgr;
if (confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.NEW, event, confInfo);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["direction"] = "in";
newEvent["value"]["src"] = "";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConnectProceeding";
this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"]);
break;
case "2009":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
case "2011":
// 停止振铃音
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
if (event["rsp"] == "2009" && discreet_listenee != undefined && discreet_listenee != "0" &&
discreet_listenee != "") {
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.DISCREET, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "discreetlisten";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
};
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF && confInfo != undefined) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RELEASE, event, confInfo);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
case "2010":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
// 停止振铃音
newEvent["value"]["caller"] = from;
var param = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}, \"reqId\": \"{1}\"}".format(
parseInt(value["cid"]), reqId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
// 删除音频媒体通道
var param =
"{\"description\":\"msp_delete_audio_channel\", \"cmd\": 65538, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(value["cid"]), reqId
)
cloudICP.dispatch.webSocket.sendDataToMediaSDK(param, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
var call = callStatusMgr.allCalls[event["value"]["cid"]];
if (call && call.callType == callStatusMgr.VOICECONF) {
callStatusMgr.updateCallStatus(callStatusMgr.VOICECONF, callStatusMgr.RELEASE, event);
newEvent["value"]["confId"] = call["confId"];
newEvent["value"]["isVideo"] = "false";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConfRelease";
this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnConfRelease"]);
setTimeout(function() {
var mconfInfo = cloudICP.util.callStatusMgr.confMgr[call["confId"]];
if (mconfInfo != null && ((mconfInfo["isEnding"] != undefined && mconfInfo[
"isEnding"] == true) || (mconfInfo["value"]["confStatus"]["status"] ==
"End"))) {
return;
}
if (cloudICP.util.callStatusMgr.confSubMgr[call["confId"]] == undefined || cloudICP
.util.callStatusMgr.confSubMgr[call["confId"]] != true) {
return;
}
var ajaxCfg = {
"type": "POST",
"url": cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"],
"data": {
"opt": "unsub",
"reqId": reqId,
"confId": call["confId"]
},
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnUnsubscribeConfFailure",
"rsp": data["rsp"],
}
this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["PhoneConfNotify"]["OnUnsubscribeConfFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}, 500);
break;
} else if (call && call.callType == callStatusMgr.HALFVOICE) {
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["fmt"] = "";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
}
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RELEASE, event);
newEvent["value"]["calltype"] = "voice";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["fmt"] = "";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "in";
newEvent["eventName"] = "OnCallRelease";
this.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
break;
case "2027":
// 被人工转接通知
newEvent["eventName"] = "OnTransferNotify";
this.EVENT_LIST["VoiceNotify"]["OnTransferNotify"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnTransferNotify"]);
break;
case "2012":
newEvent["eventName"] = "OnTalkingPrempted";
this.EVENT_LIST["VoiceNotify"]["OnTalkingPrempted"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnTalkingPrempted"]);
break;
case "2029":
newEvent["eventName"] = "OnTalkingEmergencyCallStart";
this.EVENT_LIST["VoiceNotify"]["OnTalkingEmergencyCallStart"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnTalkingEmergencyCallStart"]);
break;
case "2041":
if (reqId == undefined || reqId == '' || reqId == '0') {
reqId = mainPageId;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.NEW, event);
newEvent["value"]["calltype"] = "halfdial";
newEvent["value"]["direction"] = "in";
newEvent["value"]["src"] = "";
newEvent["value"]["fmt"] = "";
newEvent["eventName"] = "OnConnectProceeding";
this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnConnectProceeding"]);
break;
case "2042":
// 关闭麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":true}}"
.format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
newEvent["eventName"] = "OnStartRecvHalfDial";
this.EVENT_LIST["VoiceNotify"]["OnStartRecvHalfDial"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnStartRecvHalfDial"]);
break;
case "2043":
// 关闭麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":true}}"
.format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam);
// var callStatusMgr = cloudICP.util.callStatusMgr;
// callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["eventName"] = "OnStopRecvHalfDial";
this.EVENT_LIST["VoiceNotify"]["OnStopRecvHalfDial"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnStopRecvHalfDial"]);
break;
case "2045":
// 打开麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":false}}"
.format(
parseInt(value["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.CONNECTING, event);
newEvent["eventName"] = "OnHalfDialSuccess";
this.EVENT_LIST["VoiceNotify"]["OnHalfDialSuccess"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHalfDialSuccess"]);
break;
case "2046":
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.HALFVOICE, callStatusMgr.RELEASE, event);
newEvent["eventName"] = "OnHalfDialFailure";
this.EVENT_LIST["VoiceNotify"]["OnHalfDialFailure"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHalfDialFailure"]);
break;
case "2054":
newEvent["eventName"] = "OnHoldSuccess";
this.EVENT_LIST["VoiceNotify"]["OnHoldSuccess"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnHoldSuccess"]);
break;
case "2055":
newEvent["eventName"] = "OnUnholdSuccess";
this.EVENT_LIST["VoiceNotify"]["OnUnholdSuccess"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnUnholdSuccess"]);
break;
case "2056":
newEvent["eventName"] = "OnReceiveDTMF";
this.EVENT_LIST["VoiceNotify"]["OnReceiveDTMF"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnReceiveDTMF"]);
break;
case "2057": //mrs notify
newEvent["eventName"] = "MRSInfoNotify";
this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["MRSInfoNotify"]);
break;
case "2058": //voice linkphone notify
newEvent["eventName"] = "OnLinkedPhoneNotify";
this.EVENT_LIST["VoiceNotify"]["OnLinkedPhoneNotify"].event = newEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnLinkedPhoneNotify"]);
}
};
}
function ICPSDK_Dispatch_GIS() {
this.MAX_SUB_LIST = 200;
this.MAX_ERPRIED_TIME = 120;
this.MAX_SUB_NUMBER = 8000;
// 保持订阅参数
this.DEFAULT_EXPIRE_TIME = "90";
this.INTERVAL_TIME = 3000000;
this.subList = [];
var me = this;
// 由于gis订阅过期后不会立马刷新,经过讨论决定通过重复订阅的方式,将之保持订阅,直到被取消订阅
setInterval(function() {
var uelist = []
for (var index = 0; index < me.subList.length; index++) {
if (uelist.length < 190) {
uelist.push({
"isdn": me.subList[index]
});
} else {
me.subscribeGIS({
"uelist": uelist,
"callback": function() {}
});
uelist = [];
}
}
if (uelist.length != 0) {
me.subscribeGIS({
"uelist": uelist,
"callback": function() {}
});
uelist = [];
}
}, me.INTERVAL_TIME);
};
/**
* subscribeGIS
* @param {
* uelist :
* callback :
* }
*/
ICPSDK_Dispatch_GIS.prototype.subscribeGIS = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "subscribeGIS: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "subscribeGIS: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "subscribeGIS: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {};
if (!(param["uelist"] && Array.isArray(param["uelist"]) && param["uelist"].length > 0 && param["uelist"]
.length <= this.MAX_SUB_LIST)) {
result["desc"] = "subscribeGIS: uelist is invalid";
param["callback"](result);
return;
}
var length = param["uelist"].length;
if (length + this.subList.length > this.MAX_SUB_NUMBER) {
result["rsp"] = "-4";
result["desc"] = "subscribeGIS: The number of usbscribe user is limited to " + this.MAX_SUB_NUMBER;
param["callback"](result);
return;
}
for (var i = 0; i < length; i++) {
var user = param["uelist"][i];
if (!cloudICP.util.checkIsdn(user["isdn"])) {
result["desc"] = "subscribeGIS: isdn is invalid";
param["callback"](result);
return;
}
}
requestParam["expiredtime"] = this.DEFAULT_EXPIRE_TIME;
requestParam["uelist"] = param["uelist"];
requestParam["reqId"] = tabPageId;
var url = cloudICP.getSdkServerUrl() + "/v1/gis/" + cloudICP.userInfo["isdn"] + "/sub";
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* unsubscribeGIS
* @param {
* uelist :
* callback :
* }
*/
ICPSDK_Dispatch_GIS.prototype.unsubscribeGIS = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unsubscribeGIS: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unsubscribeGIS: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unsubscribeGIS: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {};
if (!(param["uelist"] && Array.isArray(param["uelist"]) && param["uelist"].length > 0 && param["uelist"]
.length <= this.MAX_SUB_LIST)) {
result["desc"] = "unsubscribeGIS: uelist is invalid";
param["callback"](result);
return;
}
var length = param["uelist"].length;
for (var i = 0; i < length; i++) {
var user = param["uelist"][i];
if (!cloudICP.util.checkIsdn(user["isdn"])) {
result["desc"] = "unsubscribeGIS: isdn is invalid";
param["callback"](result);
return;
}
}
requestParam["uelist"] = param["uelist"];
requestParam["reqId"] = tabPageId;
var url = cloudICP.getSdkServerUrl() + "/v1/gis/" + cloudICP.userInfo["isdn"] + "/unsub";
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* query GIS SubList
* @param {
* callback :
* }
*/
ICPSDK_Dispatch_GIS.prototype.queryGISSubList = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryGISSubList: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "queryGISSubList: allback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryGISSubList: The user does not logined";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/gis/" + cloudICP.userInfo["isdn"] + "/sublist" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
};
function ICPSDK_Dispatch_Group() {
this.MAX_DYNAMICGROUP_ID = 9999999999999;
this.MIN_DYNAMICGROUP_ID = 1;
this.MAX_DYNAMICGROUP_MAXPERIOD = 65535;
this.MAX_DYNAMICGROUP_PRIORITY = 255;
this.MAX_DYNAMICGROUP_GROUPLIST_LENGTH = 8;
this.MAX_DYNAMICGROUP_USERLIST_LENGTH = 200;
this.MAX_PATCHGROUP_NAME_LENGTH = 32;
this.MAX_PATCHGROUP_USERLIST_LENGTH = 20;
// 最大支持组呼并发数
this.MAX_GROUP_CALL_NUM = 30;
// 当前组呼数量
this.current_groupcall_num = 0;
this.isCurrentPtt = {
"grpid": "-1",
"isPtt": false
};
};
/**
* 新增动态群组
* @param param {
* "alias" : ,
* "grpid" : ,
* "maxperiod":,
* "priority" : ,
* "grouplist" :
* "uelist" :
* "callback"
* }
*/
ICPSDK_Dispatch_Group.prototype.addDynamicGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addDynamicGroup: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addDynamicGroup: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "addDynamicGroup: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {
"opt": "create",
"param": {}
};
if (!cloudICP.util.checkAliasOfGroup(param["alias"])) {
result["desc"] = "addDynamicGroup: The alias is invalid";
param["callback"](result);
return;
}
requestParam["param"]["alias"] = param["alias"];
requestParam["param"]["dcid"] = cloudICP.userInfo["isdn"];
if (!(cloudICP.util.isNumber(param["grpid"]) &&
(parseInt(param["grpid"]) == 0 || (parseInt(param["grpid"]) >= this.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= this.MAX_DYNAMICGROUP_ID)))) {
result["desc"] = "addDynamicGroup: The grpid is invalid";
param["callback"](result);
return;
}
requestParam["param"]["grpid"] = param["grpid"];
if (!(cloudICP.util.isNumber(param["maxperiod"]) &&
(parseInt(param["maxperiod"]) >= 1 && parseInt(param["maxperiod"]) <= this.MAX_DYNAMICGROUP_MAXPERIOD)
)) {
result["desc"] = "addDynamicGroup: The maxperiod is invalid";
param["callback"](result);
return;
}
requestParam["param"]["maxperiod"] = param["maxperiod"];
if (!(cloudICP.util.isNumber(param["priority"]) &&
(parseInt(param["priority"]) >= 1 && parseInt(param["priority"]) <= this.MAX_DYNAMICGROUP_PRIORITY))) {
result["desc"] = "addDynamicGroup: The priority is invalid";
param["callback"](result);
return;
}
requestParam["param"]["priority"] = param["priority"];
if (!Array.isArray(param["grouplist"]) || !Array.isArray(param["uelist"])) {
result["desc"] = "addDynamicGroup: The grouplist or uelist is not array";
param["callback"](result);
return;
}
if (param["grouplist"].length == 0 && param["uelist"].length == 0) {
result["desc"] = "addDynamicGroup: The grouplist or uelist must have one isdn at least";
param["callback"](result);
return;
}
if (param["grouplist"].length > this.MAX_DYNAMICGROUP_GROUPLIST_LENGTH) {
result["desc"] = "addDynamicGroup: grouplist is invalid";
param["callback"](result);
return;
}
var length = param["grouplist"].length;
for (var i = 0; i < length; i++) {
var group = param["grouplist"][i];
if (!cloudICP.util.checkGroupID(group["isdn"])) {
result["desc"] = "addDynamicGroup: isdn is invalid in grouplist";
param["callback"](result);
return;
}
}
requestParam["param"]["grouplist"] = param["grouplist"];
if (param["uelist"].length > this.MAX_DYNAMICGROUP_USERLIST_LENGTH) {
result["desc"] = "addDynamicGroup: grouplist is invalid";
param["callback"](result);
return;
}
var length = param["uelist"].length;
for (var i = 0; i < length; i++) {
var user = param["uelist"][i];
if (!cloudICP.util.checkIsdn(user["isdn"])) {
result["desc"] = "addDynamicGroup: isdn is invalid in uelist";
param["callback"](result);
return;
}
}
requestParam["param"]["uelist"] = param["uelist"];
requestParam["param"]["reqId"] = tabPageId;
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/dynamicgroup";
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* 删除动态群组
* @param param {
* "grpid" : ,
* "callback"
* }
*/
ICPSDK_Dispatch_Group.prototype.deleteDynamicGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "deleteDynamicGroup: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "deleteDynamicGroup: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "deleteDynamicGroup: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= this.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= this.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "deleteDynamicGroup: The grpid is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/dynamicgroup/cancel/" + param["grpid"];
var requestParam = {};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* 修改动态群组
* @param param {
* "alias" : ,
* "grpid" : ,
* "maxperiod":,
* "priority" : ,
* "grouplist" :
* "uelist" :
* "callback"
* }
*/
ICPSDK_Dispatch_Group.prototype.modifyDynamicGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "modifyDynamicGroup: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "modifyDynamicGroup: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "modifyDynamicGroup: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {
"opt": "modify",
"param": {}
};
requestParam["param"]["dcid"] = cloudICP.userInfo["isdn"];
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= this.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= this.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "modifyDynamicGroup: The grpid is invalid";
param["callback"](result);
return;
}
requestParam["param"]["grpid"] = param["grpid"];
if (!Array.isArray(param["addlist"]) || !Array.isArray(param["dellist"])) {
result["desc"] = "modifyDynamicGroup: The addlist or dellist is not array";
param["callback"](result);
return;
}
if (param["dellist"].length == 0 && param["addlist"].length == 0) {
result["desc"] = "modifyDynamicGroup: The addlist or dellist must have one isdn at least";
param["callback"](result);
return;
}
if (param["addlist"].length > this.MAX_DYNAMICGROUP_USERLIST_LENGTH) {
result["desc"] = "modifyDynamicGroup: addlist is invalid";
param["callback"](result);
return;
}
var length = param["addlist"].length;
for (var i = 0; i < length; i++) {
var user = param["addlist"][i];
if (!cloudICP.util.checkIsdn(user["isdn"])) {
result["desc"] = "modifyDynamicGroup: isdn is invalid in grouplist in addlist";
param["callback"](result);
return;
}
}
requestParam["param"]["addlist"] = param["addlist"];
if (param["dellist"].length > this.MAX_DYNAMICGROUP_USERLIST_LENGTH) {
result["desc"] = "modifyDynamicGroup: dellist is invalid";
param["callback"](result);
return;
}
var length = param["dellist"].length;
for (var i = 0; i < length; i++) {
var user = param["dellist"][i];
if (!cloudICP.util.checkIsdn(user["isdn"])) {
result["desc"] = "modifyDynamicGroup: isdn is invalid in dellist";
param["callback"](result);
return;
}
}
requestParam["param"]["dellist"] = param["dellist"];
cloudICP.dispatch.query.queryDynamicGroupMembers({
"grpid": requestParam["param"]["grpid"],
"callback": function(data) {
if (data["rsp"] != "-1" && data["list"] != null) {
var memberlist = data["list"];
var members = [];
for (var index = 0; index < memberlist.length; index++) {
members.push(memberlist[index]["isdn"]);
}
for (var index = 0; index < requestParam["param"]["dellist"].length; index++) {
var isdn = requestParam["param"]["dellist"][index]["isdn"];
if (!cloudICP.util.includes(members, isdn)) {
result["rsp"] = "-2";
result["desc"] = "modifyDynamicGroup: dellist is invalid.";
param["callback"](result);
return;
}
}
for (var index = 0; index < requestParam["param"]["addlist"].length; index++) {
var isdn = requestParam["param"]["addlist"][index]["isdn"];
if (cloudICP.util.includes(members, isdn)) {
result["rsp"] = "-2";
result["desc"] = "modifyDynamicGroup: addlist is invalid.";
param["callback"](result);
return;
}
}
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/dynamicgroup";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
} else {
result["rsp"] = "-2";
result["desc"] = "modifyDynamicGroup: grpid is invalid";
param["callback"](result);
return;
}
}
})
}
/**
* 新增派接组
*/
ICPSDK_Dispatch_Group.prototype.addPatchGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addPatchGroup: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addPatchGroup: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "addPatchGroup: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {
"opt": "create",
"param": {}
};
if (param["name"] == undefined || param["name"] == null) {
result["desc"] = "addPatchGroup: name is invalid";
param["callback"](result);
return;
}
if (param["name"].length > this.MAX_PATCHGROUP_NAME_LENGTH) {
result["desc"] = "addPatchGroup: name is invalid";
param["callback"](result);
return;
}
var regex = /^[\u4e00-\u9fa5_0-9A-Za-z]+$/;
if (param["name"] != "" && !regex.test(param["name"])) {
result["desc"] = "addPatchGroup: name is invalid";
param["callback"](result);
return;
}
requestParam["param"]["name"] = param["name"];
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/patchgroup";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* 删除派接组
* @param param {
* "grpid" : ,
* "callback"
* }
*/
ICPSDK_Dispatch_Group.prototype.deletePatchGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "deletePatchGroup: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "deletePatchGroup: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "deletePatchGroup: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= this.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= this.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "deletePatchGroup: The grpid is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/patchgroup/cancel/" + param["grpid"];
var requestParam = {};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* 新增派接组成员
* @param param {
* "grpid" : ,
* "callback"
* }
*/
ICPSDK_Dispatch_Group.prototype.addPatchGroupMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addPatchGroupMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "addPatchGroupMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "addPatchGroupMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {
"opt": "add",
"param": {}
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= this.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= this.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "addPatchGroupMember: The grpid is invalid";
param["callback"](result);
return;
}
requestParam["param"]["grpid"] = param["grpid"];
if (!Array.isArray(param["memberlist"]) ||
param["memberlist"].length == 0 || param["memberlist"].length > this.MAX_PATCHGROUP_USERLIST_LENGTH) {
result["desc"] = "addPatchGroupMember: memberlist is invalid";
param["callback"](result);
return;
}
var length = param["memberlist"].length;
for (var i = 0; i < length; i++) {
var user = param["memberlist"][i];
if (!cloudICP.util.checkGroupID(user["isdn"])) {
result["desc"] = "addPatchGroupMember: isdn is invalid in memberlist";
param["callback"](result);
return;
}
}
requestParam["param"]["memberlist"] = param["memberlist"];
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/patchgroup";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* 删除派接组成员
* @param param {
* "grpid" : ,
* "callback"
* }
*/
ICPSDK_Dispatch_Group.prototype.deletePatchGroupMember = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "deletePatchGroupMember: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "deletePatchGroupMember: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "deletePatchGroupMember: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
var requestParam = {
"opt": "del",
"param": {}
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= this.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= this.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "deletePatchGroupMember: The grpid is invalid";
param["callback"](result);
return;
}
requestParam["param"]["grpid"] = param["grpid"];
if (!Array.isArray(param["memberlist"]) ||
param["memberlist"].length == 0 || param["memberlist"].length > this.MAX_PATCHGROUP_USERLIST_LENGTH) {
result["desc"] = "deletePatchGroupMember: memberlist is invalid";
param["callback"](result);
return;
}
var length = param["memberlist"].length;
for (var i = 0; i < length; i++) {
var user = param["memberlist"][i];
if (!cloudICP.util.checkGroupID(user["isdn"])) {
result["desc"] = "deletePatchGroupMember: isdn is invalid in memberlist";
param["callback"](result);
return;
}
}
requestParam["param"]["memberlist"] = param["memberlist"];
var url = cloudICP.getSdkServerUrl() + "/v1/group/" + cloudICP.userInfo["isdn"] + "/patchgroup";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* subscribeTalkingGroup() subscribe talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.subscribeTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"subscribeTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"subscribeTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "subscribeTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "subscribeTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "sub";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* unsubscribeTalkingGroup() unsubscribe talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.unsubscribeTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"unsubscribeTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"unsubscribeTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unsubscribeTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "unsubscribeTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "unsub";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* subjoinTalkingGroup() subjoin talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.subjoinTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"subjoinTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"subjoinTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "subjoinTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "subjoinTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "subjoin";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* joinTalkingGroup() subjoin talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.joinTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"joinTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"joinTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "joinTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "joinTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "join";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* pttTalkingGroup() ptt talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.pttTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"pttTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"pttTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "pttTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "pttTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
if (cloudICP.dispatch.group.current_groupcall_num >= cloudICP.dispatch.group.MAX_GROUP_CALL_NUM) {
result["rsp"] = "-4";
result["desc"] = "pttTalkingGroup: Exceeded the maximum number of group calls.";
param["callback"](result);
return;
}
if (cloudICP.dispatch.group.isCurrentPtt["isPtt"]) {
result["rsp"] = "-5";
result["desc"] = "pttTalkingGroup: The number of ptt is limited to 1.";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0) {
result["rsp"] = "-6";
result["desc"] = "pttTalkingGroup: The group call ptt is confliced with halfdial.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "snatch";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* pttreleaseTalkingGroup() ptt release talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.pttreleaseTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"pttreleaseTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"pttreleaseTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "pttreleaseTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "pttreleaseTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "release";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* leaveTalkingGroup() ptt release talking group
* @param {Object} param {
* "cid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.leaveTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"leaveTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"leaveTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "leaveTalkingGroup: User not logged.";
param["callback"](result);
return;
};
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "leaveTalkingGroup: The cid is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "hangup";
resParam["cid"] = param["cid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* pttTalkingGroupEmergencyCall() ptt talking group emergency call
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.pttTalkingGroupEmergencyCall = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"pttTalkingGroupEmergencyCall": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"pttTalkingGroupEmergencyCall": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "pttTalkingGroupEmergencyCall: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "pttTalkingGroupEmergencyCall: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "emergency";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* breakoffTalkingGroup() break off talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.breakoffTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"breakoffTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"breakoffTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "breakoffTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "breakoffTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"] + "/breakoff";
resParam["opt"] = "group";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* addTalkingGroupTempUser() add talking group temp user
* @param {Object} param {
* "grpid": ,
* "userid" ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.addTalkingGroupTempUser = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"addTalkingGroupTempUser": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"addTalkingGroupTempUser": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "addTalkingGroupTempUser: User not logged.";
param["callback"](result);
return;
};
if (!cloudICP.util.checkIsdn(param["userid"])) {
result["rsp"] = "-2";
result["desc"] = "addTalkingGroupTempUser: userid is invalid";
param["callback"](result);
return;
}
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "addTalkingGroupTempUser: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "adduser";
resParam["to"] = param["grpid"];
resParam["userid"] = param["userid"];
resParam["reqId"] = tabPageId;
if (undefined != param["waitcallresult"] && "0" != param["waitcallresult"]) {
resParam["waitcallresult"] = "1";
} else {
resParam["waitcallresult"] = "0";
}
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* breakinTalkingGroup() break in talking group
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.breakinTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"breakinTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"breakinTalkingGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "breakinTalkingGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "breakinTalkingGroup: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "breakin";
resParam["to"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* getPDTGroupInfo() get pdt group info
* @param {Object} param {
* "operation": ,
* "userid" ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.getPDTGroupInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"getPDTGroupInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"getPDTGroupInfo": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "getPDTGroupInfo: User not logged.";
param["callback"](result);
return;
};
if (!cloudICP.util.checkIsdn(param["userid"])) {
result["rsp"] = "-2";
result["desc"] = "getPDTGroupInfo: userid is invalid";
param["callback"](result);
return;
}
if (!param["operation"] || typeof param["operation"] != "string") {
result["desc"] = "getPDTGroupInfo: operation is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "pdt_query";
resParam["operation"] = param["operation"];
resParam["userId"] = param["userid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* setListenGroup() get pdt group info
* @param {Object} param {
* "operation": ,
* "userid" ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Group.prototype.setListenGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"setListenGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"setListenGroup": "callback is not a function"
});
return;
}
var resParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "setListenGroup: User not logged.";
param["callback"](result);
return;
};
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["rsp"] = "-2";
result["desc"] = "setListenGroup: grpid is invalid.";
param["callback"](result);
return;
}
if (!param["operation"] || typeof param["operation"] != "string") {
result["desc"] = "setListenGroup: operation is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/groupcall/" + cloudICP.userInfo["isdn"];
resParam["opt"] = "set_listen";
resParam["operation"] = param["operation"];
resParam["grpid"] = param["grpid"];
resParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": resParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
function ICPSDK_Dispatch_Query() {};
var PAGE_QUERY_LIMIT_MAX = 5000;
/**
* queryTalkingGroup() query talking group
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryTalkingGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroup": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryTalkingGroup: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/group/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryTalkingGroupV1() query talking group
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryTalkingGroupV1 = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupV1": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupV1": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryTalkingGroupV1: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (undefined == param["offset"]) {
param["offset"] = "0";
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
}
if (!(cloudICP.util.isNumber(param["category"])) ) {
param["category"] = "10";
}
if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] = "queryTalkingGroupV1: offset invalid.";
param["callback"](result);
return;
}
if (!(cloudICP.util.isNumber(param["limit"])) || param["limit"] > PAGE_QUERY_LIMIT_MAX) {
result["desc"] = "queryTalkingGroupV1: limit invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v2/" + cloudICP.userInfo["isdn"] + "/group?offset={0}&limit={1}&reqId={2}&category={3}"
.format(param["offset"], param["limit"], tabPageId, param["category"]);
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryTalkingGroupMembers() query talking group members
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryTalkingGroupMembers = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupMembers": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupMembers": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryTalkingGroupMembers: User not logged.";
param["callback"](result);
return;
};
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryTalkingGroupMembers: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/" + param["grpid"] + "/groupmember/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryTalkingGroupMembersV1() query talking group members
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryTalkingGroupMembersV1 = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupMembersV1": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupMembersV1": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryTalkingGroupMembersV1: User not logged.";
param["callback"](result);
return;
};
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryTalkingGroupMembersV1: grpid is invalid.";
param["callback"](result);
return;
}
if (undefined == param["offset"]) {
param["offset"] = "0";
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
}
if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] = "queryTalkingGroupMembersV1: offset is invalid.";
param["callback"](result);
return;
}
if (!(cloudICP.util.isNumber(param["limit"])) || param["limit"] > PAGE_QUERY_LIMIT_MAX) {
result["desc"] = "queryTalkingGroupMembersV1: limit is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v2/" + cloudICP.userInfo["isdn"] +
"/groupmember?number={0}&offset={1}&limit={2}&reqId={3}".format(
param["grpid"], param["offset"], param["limit"], tabPageId);
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryDynamicGroupMembers() query talking group members
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryDynamicGroupMembers = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDynamicGroupMembers": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDynamicGroupMembers": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDynamicGroupMembers: User not logged.";
param["callback"](result);
return;
};
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryDynamicGroupMembers: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/" + param["grpid"] +
"/dynamicgroupmember/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryDynamicGroup() query dynamic group
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryDynamicGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDynamicGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDynamicGroup": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDynamicGroup: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/dynamicgroup/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
if (undefined != data["list"] && data["list"] != null) {
var index = 0;
for (var index = 0; index < data["list"].length; index++) {
if (undefined != data["list"][index]["speakerfixed"]) {
delete data["list"][index]["speakerfixed"];
}
}
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryStaticGroup() query static group
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryStaticGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryStaticGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryStaticGroup": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryStaticGroup: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/staticgroup/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryStaticGroupV1() query static group
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryStaticGroupV1 = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryStaticGroupV1": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryStaticGroupV1": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryStaticGroupV1: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (undefined == param["offset"]) {
param["offset"] = "0";
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
}
if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] = "queryStaticGroupV1: offset invalid.";
param["callback"](result);
return;
}
if (!(cloudICP.util.isNumber(param["limit"])) || param["limit"] > PAGE_QUERY_LIMIT_MAX ) {
result["desc"] = "queryStaticGroupV1: limit invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v2/" + cloudICP.userInfo["isdn"] + "/staticgroup?offset={0}&limit={1}&reqId={2}"
.format(
param["offset"], param["limit"], tabPageId);
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryPatchGroup() query patch group
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryPatchGroup = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryPatchGroup": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryPatchGroup": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryPatchGroup: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/patchgroup/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryPatchGroupMembers() query patch group members
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryPatchGroupMembers = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryPatchGroupMembers": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryPatchGroupMembers": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryPatchGroupMembers: User not logged.";
param["callback"](result);
return;
};
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryPatchGroupMembers: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/" + param["grpid"] +
"/patchgroupmember/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryUserList() query user
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryUserList = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUserList": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUserList": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryUserList: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/user/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryUserListV1() query user
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryUserListV1 = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUserListV1": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUserListV1": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryUserListV1: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (undefined == param["offset"]) {
param["offset"] = "0";
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
}
if ( !(cloudICP.util.isNumber(param["category"])) ) {
param["category"] = "-1";
}
if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] = "queryUserListV1: offset invalid.";
param["callback"](result);
return;
}
if (!(cloudICP.util.isNumber(param["limit"])) || param["limit"] > PAGE_QUERY_LIMIT_MAX) {
result["desc"] = "queryUserListV1: limit invalid.";
param["callback"](result);
return;
}
let departmentId = "";
if ((undefined != param["departmentid"]) && param["departmentid"] != "") {
if (!(cloudICP.util.isNumber(param["departmentid"]))|| param["departmentid"].length > 18) {
result["desc"] = "queryUserListV1: departmentid invalid.";
param["callback"](result);
return;
} else {
departmentId = param["departmentid"];
}
}
var url = cloudICP.getSdkServerUrl() + "/v2/" + cloudICP.userInfo["isdn"] + "/user?offset={0}&limit={1}&reqId={2}&category={3}&departmentid={4}".format(
param["offset"], param["limit"], tabPageId, param["category"], departmentId);
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryCameras() query cameras
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCameras = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameras": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameras": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameras: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/camera/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
ICPSDK_Dispatch_Query.prototype.queryCamerasV1 = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"]) {
var param = param["value"];
}
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryCamerasV1": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryCamerasV1": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCamerasV1: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (undefined == param["offset"]) {
param["offset"] = "0";
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
}
if ( !(cloudICP.util.isNumber(param["offset"])) ) {
result["desc"] = "queryCamerasV1: offset invalid.";
param["callback"](result);
return;
}
if ( !(cloudICP.util.isNumber(param["limit"])) || param["limit"] > PAGE_QUERY_LIMIT_MAX) {
result["desc"] = "queryCamerasV1: limit invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v2/" + cloudICP.userInfo["isdn"] + "/camera?offset={0}&limit={1}&reqId={2}".format(
param["offset"], param["limit"], tabPageId);
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* query cameras at a specified level.
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.querySpecifiedLevelCamera = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"querySpecifiedLevelCamera": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"querySpecifiedLevelCamera": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "querySpecifiedLevelCamera: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["levelnumber"]))) {
result["desc"] = "querySpecifiedLevelCamera: levelnumber is invalid.";
param["callback"](result);
return;
}
if (undefined == param["offset"]) {
param["offset"] = "0";
}
if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] += " querySpecifiedLevelCamera: offset is invalid";
param["callback"](result);
return;
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
}
if (!(cloudICP.util.isNumber(param["limit"]))) {
result["desc"] += " querySpecifiedLevelCamera: limit is invalid";
param["callback"](result);
return;
} else {
var iLimit = parseInt(param["limit"]);
if (1 > iLimit || 5000 < iLimit) {
result["desc"] += " querySpecifiedLevelCamera: limit not in [1,5000]";
param["callback"](result);
return;
}
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] +
"/querylevelcameras";
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": param,
"callback": function(data) {
data["desc"] += result["desc"];
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryDecoder() query decoder
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryDecoder = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDecoder": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDecoder": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDecoder: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/decoder/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryDepartmentList() query department list
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryDepartmentList = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDepartmentList": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDepartmentList": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDepartmentList: User not logged.";
param["callback"](result);
return;
}
if (undefined == param["name"]) {
param["name"] = "";
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/department" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": param,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryCameraLevel() query camera level
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCameraLevel = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraLevel": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraLevel": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameraLevel: User not logged.";
param["callback"](result);
return;
}
if (undefined == param["name"]) {
param["name"] = "";
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/cameralevel" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": param,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryCameraLevelPermission() query camera level permission
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCameraLevelPermission = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraLevelPermission": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraLevelPermission": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameraLevelPermission: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/cameralevelpermission/-1" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryTalkingGroupInfo() query talking group info
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryTalkingGroupInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryTalkingGroupInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryTalkingGroupInfo: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/group/" + param["grpid"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryPatchGroupInfo() query patch group info
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryPatchGroupInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryPatchGroupInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryPatchGroupInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryPatchGroupInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryPatchGroupInfo: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/patchgroup/" + param["grpid"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryTalkingGroupPatchedInfo() query patched info
* @param {Object} param {
* "grpid": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryTalkingGroupPatchedInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupPatchedInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryTalkingGroupPatchedInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryTalkingGroupPatchedInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["grpid"]) && (parseInt(param["grpid"]) >= cloudICP.dispatch.group
.MIN_DYNAMICGROUP_ID &&
parseInt(param["grpid"]) <= cloudICP.dispatch.group.MAX_DYNAMICGROUP_ID))) {
result["desc"] = "queryTalkingGroupPatchedInfo: grpid is invalid.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/patched/" + param["grpid"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryUserInfo() query user info
* @param {Object} param {
* "isdn": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryUserInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUserInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUserInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryUserInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["isdn"])) {
result["desc"] = "queryUserInfo: isdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/user/" + param["isdn"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryCameraInfo() query camera info
* @param {Object} param {
* "isdn": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCameraInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameraInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["isdn"])) {
result["desc"] = "queryCameraInfo: isdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/camera/" + param["isdn"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryCameraPermissionInfo() query camera permission info
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCameraPermissionInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraPermissionInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraPermissionInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameraPermissionInfo: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/camerapermission" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryCallInfo() query decoder info
* @param {Object} param {
* "isdn": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCallInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCallInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCallInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCallInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["isdn"])) {
result["desc"] = "queryCallInfo: isdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/decoder/" + param["isdn"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryDCInfo() query DC info
* @param {Object} param {
* "isdn": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryDCInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDCInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDCInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDCInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["isdn"])) {
result["desc"] = "queryDCInfo: isdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/dc/" + param[
"isdn"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryUEInfo() query UE info
* @param {Object} param {
* "isdn": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryUEInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUEInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUEInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryUEInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["isdn"])) {
result["desc"] = "queryUEInfo: isdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/ue/" + param[
"isdn"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* queryUEGisInfo() query UE gis info
* @param {Object} param {
* "isdn": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryUEGisInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUEGisInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryUEGisInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryUEGisInfo: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["isdn"])) {
result["desc"] = "queryUEGisInfo: isdn is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/queryattribute/" + cloudICP.userInfo["isdn"] + "/uegis/" + param[
"isdn"] + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryGISTrack() query department list
* @param {Object} param {
* "ueId": ,
* "start_sec": ,
* "end_sec": ,
* "offset",
* "limit",
* "policy",
* "maxNum",
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryGISTrack = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
/**检查是不是合法年月日输入 */
if (undefined == param) {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryGISTrack": "param is invalid" });
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, { "logLevel": "error", "queryGISTrack": "callback is not a function" });
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryGISTrack: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(cloudICP.util.isNumber(param["ueid"]))) {
result["desc"] += " queryGISTrack: ueid is invalid";
param["callback"](result);
return;
}
var tmpBeginStr;
if (!(dateStrIsValid(param["begintime"])) || (undefined == param["begintime"])) {
result["desc"] = "queryGISTrack: begintime is invalid";
param["callback"](result);
return;
} else {
tmpBeginStr = param["begintime"].replace(/-/g,"/");
if (isNaN(Date.parse(tmpBeginStr))) {
result["desc"] = "queryGISTrack: begintime is invalid";
param["callback"](result);
return;
}
}
var tmpEndStr;
if (!(dateStrIsValid(param["endtime"])) || (undefined == param["endtime"])) {
result["desc"] = "queryGISTrack: endtime is invalid";
param["callback"](result);
return;
} else {
tmpEndStr = param["endtime"].replace(/-/g,"/");
if (isNaN(Date.parse(tmpEndStr))) {
result["desc"] = "queryGISTrack: endtime is invalid";
param["callback"](result);
return;
}
}
if (((Date.parse(tmpEndStr) - Date.parse(tmpBeginStr))/1000) > 604800 ||
((Date.parse(tmpEndStr) - Date.parse(tmpBeginStr))/1000) < 0) {//604,800 为 7天的 s数 3600*24*7
result["desc"] = "The start time must be earlier than the end time and The difference between the start time and end time cannot exceed 7 days.";
param["callback"](result);
return;
}
if (undefined == param["offset"]) {
param["offset"] = "0";
} else if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] += " queryGISTrack: offset is invalid..";
param["callback"](result);
return;
}
if (undefined == param["limit"]) {
param["limit"] = "1000";
} else if (!(cloudICP.util.isNumber(param["limit"]))) {
result["desc"] += " queryGISTrack: limit is error or null.";
param["callback"](result);
return;
} else {
var iLimit = parseInt(param["limit"]);
if (1 > iLimit || 2000 < iLimit) {
result["desc"] += " queryGISTrack: limit not in [1,2000]";
param["callback"](result);
return;
}
}
if (undefined == param["policy"]) {
param["policy"] = "1";
} else if (!(cloudICP.util.isNumber(param["policy"]))) {
result["desc"] += " queryGISTrack: policy is invalid, policy not in [0,1]";
param["callback"](result);
return;
}
if (undefined == param["maxnum"]) {
param["maxnum"] = "2147483647";
} else if (!(cloudICP.util.isNumber(param["maxnum"]))) {
result["desc"] += " queryGISTrack: maxnum is invalid";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/gistrack";
var requestParam = {
"ueid": param["ueid"],
"begintime": param["begintime"],
"endtime": param["endtime"],
"offset": param["offset"],
"limit": param["limit"],
"policy": param["policy"],
"maxnum": param["maxnum"]
};
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryConfWallInfo() query department list
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryConfWallInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryConfWallInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryConfWallInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDepartmentList: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/phoneconf/" + cloudICP.userInfo["isdn"] + "/querywallinfo";
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryRecord() query department list
* @param {Object} param {
* "call_type": ,
* "callee": ,
* "caller": ,
* "resource_id": ,
* "start_sec": ,
* "end_sec": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryRecord = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryRecord": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryRecord": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryRecord: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
var types = ["0", "1", "2", "3", "5", "6", "7", "8"];
if (!param["call_type"] || !cloudICP.util.includes(types, param["call_type"])) {
result["desc"] = "queryRecord: The call_type is invalid";
param["callback"](result);
return;
}
if (param["caller"] != "" && !cloudICP.util.checkIsdn(param["caller"])) {
result["desc"] = "queryRecord: caller is invalid";
param["callback"](result);
return;
}
if (param["callee"] != "" && !cloudICP.util.checkIsdn(param["callee"])) {
result["desc"] = "queryRecord: callee is invalid";
param["callback"](result);
return;
}
if (!(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(param["end_sec"]))) {
result["desc"] = "queryRecord: end_sec is invalid";
param["callback"](result);
return;
} else {
var tmpStr = param["end_sec"].replace(/-/g, "/")
if (isNaN(Date.parse(tmpStr))) {
result["desc"] = "queryRecord: end_sec is invalid";
param["callback"](result);
return;
}
}
if (!(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(param["start_sec"]))) {
result["desc"] = "queryRecord: start_sec is invalid";
param["callback"](result);
return;
} else {
var tmpStr = param["start_sec"].replace(/-/g, "/")
if (isNaN(Date.parse(tmpStr))) {
result["desc"] = "queryRecord: start_sec is invalid";
param["callback"](result);
return;
}
}
if (undefined == param["offset"]) {
param["offset"] = "0";
} else if (!(cloudICP.util.isNumber(param["offset"]))) {
result["desc"] += " queryRecord: offset is invalid";
param["callback"](result);
return;
}
if (undefined == param["limit"]) {
param["limit"] = "100";
} else if (!(cloudICP.util.isNumber(param["limit"]))) {
result["desc"] += " queryRecord: limit is error or null.";
param["callback"](result);
return;
} else {
var iLimit = parseInt(param["limit"]);
if (1 > iLimit || 1000 < iLimit) {
result["desc"] += " queryRecord: limit not in [1,1000].";
param["callback"](result);
return;
}
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/recfileinfo";
var requestParam = {
"call_type": param["call_type"],
"callee": param["callee"],
"caller": param["caller"],
"resource_id": param["resource_id"],
"start_sec": param["start_sec"],
"end_sec": param["end_sec"],
"offset": param["offset"],
"fileNum": param["limit"]
};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryCameraGPSInfo() query department list
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryCameraGPSInfo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraGPSInfo": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryCameraGPSInfo": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryCameraGPSInfo: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/gisipc" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* queryMRS() query department list
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryMRS = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryMRS": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryMRS": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryMRS: User not logged.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/mrsnodes" + "?reqId=" + tabPageId;
var ajaxCfg = {
"type": "GET",
"url": url,
"async": true,
"data": null,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* query ralationship of GBID and ISDN
* @param {Object} param {
* "callback": ,
* }
*/
ICPSDK_Dispatch_Query.prototype.queryDeviceIDRelationship = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
param.reqId = tabPageId;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDeviceIDRelationship": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"queryDeviceIDRelationship": "callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "queryDeviceIDRelationship: User not logged.";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (undefined == param["Type"] || ('0' != param["Type"] && '2' != param["Type"] && '1' != param["Type"])) {
result["desc"] = " queryDeviceIDRelationship: Type is invalid.";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIdList(param["IDList"]) && '0' == param["Type"]) {
result["desc"] = " queryDeviceIDRelationship: IDList is invalid.";
param["callback"](result);
return;
}
if (param["Method"] != 'async' && param["Method"] != 'sync' && param["Method"] != '') {
result["desc"] = " queryDeviceIDRelationship: Method is invalid.";
param["callback"](result);
return;
}
if (undefined == param["OffSet"] && '2' == param["Type"]) {
param["OffSet"] = "0";
} else if (!(cloudICP.util.isNumber(param["OffSet"])) && '2' == param["Type"]) {
result["desc"] += " queryDeviceIDRelationship: OffSet is error or null.";
param["callback"](result);
return;
} else if ('2' == param["Type"]) {
var iLimit = parseInt(param["OffSet"]);
if (0 > iLimit || 1000000 < iLimit) {
result["desc"] += " queryDeviceIDRelationship: OffSet not in [1,1000].";
param["callback"](result);
return;
}
}
if (undefined == param["Limit"] && '2' == param["Type"]) {
param["Limit"] = "10000";
} else if (!(cloudICP.util.isNumber(param["Limit"])) && '2' == param["Type"]) {
result["desc"] += " queryDeviceIDRelationship: Limit is error or null.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/querylist/" + cloudICP.userInfo["isdn"] + "/deviceidelationship";
var ajaxCfg = {
"type": "POST",
"url": url,
"async": true,
"data": param,
"callback": function(data) {
data["desc"] += result["desc"];
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
dateStrIsValid = function(dateStr) {
var regStr = "^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)"
+"|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579]"
+"[26])00)-02-29)\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$";
return new RegExp(regStr).test(dateStr);
};
function ICPSDK_Dispatch_Sms() {
this.MAX_MESSAGE_CONTENT = 10000;
this.MAX_DEST_COUNT = 200;
this.lastSendTime = 0;
};
/**
* sendDispSMS() send short message
* @param {Object} param {
* "dest": ,
* "content": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Sms.prototype.sendDispSMS = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"sendDispSMS": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"sendDispSMS": "callback is not a function"
});
return;
}
var sendDispSMSParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
var oldTime = this.lastSendTime;
this.lastSendTime = new Date().getTime();
if (this.lastSendTime - oldTime <= 1000) {
result["rsp"] = "-4";
result["desc"] = "sendDispSMS: The interval of sending message should be larger than 1 second.";
param["callback"](result);
return;
}
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "sendDispSMS: User not logged.";
param["callback"](result);
return;
}
if (!param["content"]) {
result["rsp"] = "-2";
result["desc"] = "sendDispSMS: content is invalid.";
param["callback"](result);
return;
} else {
var clength = 0;
for (var index = 0; index < param["content"].length; index++) {
if (encodeURI(param["content"][index]).length > 1) {
clength += 3;
} else {
clength += 1;
}
}
if (clength > this.MAX_MESSAGE_CONTENT) {
result["rsp"] = "-2";
result["desc"] = "sendDispSMS: content is invalid.";
param["callback"](result);
return;
}
}
if ((!param["dest"]) || cloudICP.util.includes(param["dest"], " ") || !(/^(([1-9]+[0-9]*)+;)*(([1-9]+[0-9]*)+)$/
.test(param["dest"]))) {
result["rsp"] = "-2";
result["desc"] = "sendDispSMS: dest is invalid.";
param["callback"](result);
return;
}
if (param["dest"].split(";").length > this.MAX_DEST_COUNT) {
result["rsp"] = "-2";
result["desc"] = "sendDispSMS: dest is invalid.";
param["callback"](result);
return;
}
sendDispSMSParam["param"] = {};
sendDispSMSParam["param"]["msgid"] = "";
sendDispSMSParam["param"]["content"] = param["content"];
sendDispSMSParam["param"]["dest"] = param["dest"];
sendDispSMSParam["param"]["locationshare"] = param["locationshare"];
if (undefined != param["msgid"]) {
sendDispSMSParam["param"]["msgid"] = param["msgid"];
}
var url = cloudICP.getSdkServerUrl() + "/v1/sds/" + cloudICP.userInfo["isdn"] + "/sms";
sendDispSMSParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": sendDispSMSParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* sendDispMMS() send multi media message
* @param {Object} param {
* "dest": [
* {
* "isdn": "",
* "msgid": "",
* }
* ],
* "content": ,
* "attach": ,
* "callback": ,
* }
*/
ICPSDK_Dispatch_Sms.prototype.sendDispMMS = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"sendDispMMS": "param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"sendDispMMS": "callback is not a function"
});
return;
}
var sendDispMMSParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "sendDispMMS: User not logged.";
param["callback"](result);
return;
}
if (!(param["dest"] && Array.isArray(param["dest"])) || param["dest"].length >= this.MAX_DEST_COUNT || param[
"dest"].length <= 0) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: dest is invalid";
param["callback"](result);
return;
}
var dests = param["dest"];
for (var item = 0; item < dests.length; item++) {
if (!cloudICP.util.isNumber(dests[item]["msgid"])) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: msgid is invalid";
param["callback"](result);
return;
}
}
if (undefined != param["audioinfo"]) {
if (!cloudICP.util.isNumber(param["audioinfo"])) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: audioinfo is invalid";
param["callback"](result);
return;
} else if ("" == param["audiocontent"]) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: audioinfo is valid, audiocontent is invalid";
param["callback"](result);
return;
}
}
if (undefined != param["audiocontent"]) {
if ("" == param["audiocontent"]) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: audiocontent is invalid";
param["callback"](result);
return;
} else if (!param["audiocontent"]) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: audiocontent is valid, audioinfo is invalid";
param["callback"](result);
return;
}
}
sendDispMMSParam["param"] = {};
sendDispMMSParam["param"]["msgid"] = "";
sendDispMMSParam["param"]["dest"] = "";
if (undefined !=param["attach"]) {
sendDispMMSParam["param"]["attach"] = param["attach"];
}
if (undefined !=param["attach_thumb"]) {
sendDispMMSParam["param"]["attach_thumb"] = param["attach_thumb"];
}
if (undefined !=param["original_image"]) {
sendDispMMSParam["param"]["original_image"] = param["original_image"];
}
var length = param["dest"].length;
for (var i = 0; i < length; i++) {
var user = param["dest"][i];
if (!cloudICP.util.checkIsdn(user["isdn"])) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: isdn is invalid";
param["callback"](result);
return;
}
if (user["msgid"] == undefined || !user["msgid"]) {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: msgid is invalid";
param["callback"](result);
return;
}
if (i == length - 1) {
sendDispMMSParam["param"]["msgid"] += user["msgid"];
sendDispMMSParam["param"]["dest"] += user["isdn"];
} else {
sendDispMMSParam["param"]["msgid"] += user["msgid"] + ";";
sendDispMMSParam["param"]["dest"] += user["isdn"] + ";";
}
}
if (param["audiocontent"] || param["audioinfo"]) {
if (param["audiocontent"] && param["audioinfo"]) {
sendDispMMSParam["param"]["audiocontent"] = param["audiocontent"];
sendDispMMSParam["param"]["audioinfo"] = param["audioinfo"];
} else {
result["rsp"] = "-2";
result["desc"] = "sendDispMMS: audio msg must has audiocontent and audioinfo";
param["callback"](result);
return;
}
}
var url = cloudICP.getSdkServerUrl() + "/v1/sds/" + cloudICP.userInfo["isdn"] + "/mms";
sendDispMMSParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": sendDispMMSParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
function ICPSDK_Dispatch_Video() {
this.MAX_DISPATCH_LIST = 100;
this.MAX_VIDEO_ABILITY = 50;
// 当前视频能力,目前默认最大支持50单位的视频能力。
this.currentVideoAbility = 0;
this.MAX_VIDEO_DIAL_NUM = 1;
};
/**
* monitorVideo
* @param {Object} param {
* to: ,
* monitorParam: {
* fmt: ,
* mute: ,
* confirm: ,
* camera: ,
* videooffer: ,
* }
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.monitorVideo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
cloudICP.util.log(tabPageId, {
"logLevel": "INFO",
"logMsg": "monitorVideo entry"
});
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "monitorVideo: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "monitorVideo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "monitorVideo: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "monitorVideo: The to is invalid";
param["callback"](result);
return;
}
if (!param["monitorParam"]) {
result["desc"] = "monitorVideo: The monitorParam is invalid";
param["callback"](result);
return;
}
if (!param["monitorParam"]["fmt"]) {
param["monitorParam"]["fmt"] = "4K";
}
var fmts = ["4K", "2K", "1080P", "720P", "D1", "CIF", "QCIF", "GCIF"];
if (!param["monitorParam"]["fmt"] || !cloudICP.util.includes(fmts, param["monitorParam"]["fmt"])) {
result["desc"] = "monitorVideo: The fmt is invalid";
param["callback"](result);
return;
}
var mutes = ["0", "1"];
if (!param["monitorParam"]["mute"] || !cloudICP.util.includes(mutes, param["monitorParam"]["mute"])) {
result["desc"] = "monitorVideo: The mute is invalid";
param["callback"](result);
return;
}
var confirms = ["0", "1"];
if (!param["monitorParam"]["confirm"] || !cloudICP.util.includes(confirms, param["monitorParam"]["confirm"])) {
result["desc"] = "monitorVideo: The confirm is invalid";
param["callback"](result);
return;
}
var cameras = ["0", "1", "2"];
if (!param["monitorParam"]["camera"] || !cloudICP.util.includes(cameras, param["monitorParam"]["camera"])) {
result["desc"] = "monitorVideo: The camera is invalid";
param["callback"](result);
return;
}
var strWindowinfo = {};
if (undefined !=param["monitorParam"]) {
strWindowinfo["fmt"] = param["monitorParam"]["fmt"];
strWindowinfo["mute"] = param["monitorParam"]["mute"];
strWindowinfo["confirm"] = param["monitorParam"]["confirm"];
strWindowinfo["camera"] = param["monitorParam"]["camera"];
strWindowinfo["videooffer"] = param["monitorParam"]["mode"];
strWindowinfo["mode"] = param["monitorParam"]["mode"];
strWindowinfo["showToolbar"] = param["monitorParam"]["showToolbar"];
strWindowinfo["buttonIDs"] = param["monitorParam"]["buttonIDs"];
strWindowinfo["posX"] = param["monitorParam"]["posX"];
strWindowinfo["posY"] = param["monitorParam"]["posY"];
strWindowinfo["width"] = param["monitorParam"]["width"];
strWindowinfo["height"] = param["monitorParam"]["height"];
strWindowinfo["hide"] = param["monitorParam"]["hide"];
strWindowinfo["enableDrag"] = param["monitorParam"]["enableDrag"];
strWindowinfo["videoResizeMode"] = param["monitorParam"]["videoResizeMode"];
}
if (undefined == param["monitorParam"]["mode"] || !cloudICP.util.checkmode(param["monitorParam"]["mode"])) {
result["desc"] += "monitorVideo: The mode is invalid, use defult value " + cloudICP.config["mode"] + "; ";
strWindowinfo["mode"] = cloudICP.config["mode"];
}
if ("wssflow" == strWindowinfo["mode"]) { //推流模式
if (undefined == param["monitorParam"]["width"] || !cloudICP.util.isNumber(param["monitorParam"][
"width"
]) || param["monitorParam"]["width"] > 2147483647 || param["monitorParam"]["width"] < 0) {
result["desc"] = "monitorVideo: The width is invalid.";
param["callback"](result);
return;
}
if (undefined == param["monitorParam"]["height"] || !cloudICP.util.isNumber(param["monitorParam"][
"height"
]) || param["monitorParam"]["height"] > 2147483647 || param["monitorParam"]["height"] < 0) {
result["desc"] = "monitorVideo: The height is invalid.";
param["callback"](result);
return;
}
delete strWindowinfo["userWindowId"];
} else if ("window" == strWindowinfo["mode"]) { //弹窗模式
if (!cloudICP.util.checkWindowParam(param["monitorParam"]["posX"])) {
result["desc"] += "monitorVideo: The posX is invalid, use defult value 400; ";
strWindowinfo["posX"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["monitorParam"]["posY"])) {
result["desc"] += "monitorVideo: The posY is invalid, use defult value 400; ";
strWindowinfo["posY"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["monitorParam"]["width"])) {
result["desc"] += "monitorVideo: The width is invalid, use defult value 640; ";
strWindowinfo["width"] = 640;
}
if (!cloudICP.util.checkWindowParam(param["monitorParam"]["height"])) {
result["desc"] += "monitorVideo: The height is invalid, use defult value 480; ";
strWindowinfo["height"] = 480;
}
if (undefined == param["monitorParam"]["showToolbar"] || !cloudICP.util.checkshowToolbar(param[
"monitorParam"]["showToolbar"])) {
result["desc"] += "monitorVideo: The showToolbar is invalid, use defult value 1; ";
strWindowinfo["showToolbar"] = 1;
}
if (undefined == param["monitorParam"]["buttonIDs"] || !cloudICP.util.checkbuttonIDs(param["monitorParam"][
"buttonIDs"
])) {
result["desc"] += "monitorVideo: The buttonIDs is invalid, use defult value 0; ";
strWindowinfo["buttonIDs"] = 0;
}
if (undefined == param["monitorParam"]["hide"]) {
result["desc"] += "monitorVideo: The hide is invalid, use defult value false; ";
strWindowinfo["hide"] = false;
}
if (undefined == param["monitorParam"]["enableDrag"]) {
result["desc"] += "monitorVideo: The enableDrag is invalid, use defult value true; ";
strWindowinfo["enableDrag"] = true;
}
if (undefined != param["monitorParam"]["userWindowId"]) { //检测userWindowId是否被占用、值是否有效
var iResult = cloudICP.util.checkUserWindowId(param["monitorParam"]["userWindowId"], "use");
if (0 == iResult) {
result["desc"] = "monitorVideo: The userWindowId is invalid.";
param["callback"](result);
return;
} else if (2 == iResult) {
result["desc"] = "monitorVideo: The userWindowId not create window or used in other video operate.";
param["callback"](result);
return;
}
}
} else {
result["desc"] = "monitorVideo: The mode is invalid.";
param["callback"](result);
return;
}
//监控相同摄像头的视频流 不支持用户窗口
var jsonMediaValue = {
"value": ""
};
var videoResizeMode = cloudICP.config["videoResizeMode"];
if (cloudICP.util.createNewCopyMonitor(cloudICP.userInfo["isdn"], param["to"], jsonMediaValue)) {
if ("" == jsonMediaValue["value"]) {
result["desc"] = "monitorVideo: The " + param["to"] + " is not get video stream, please wait a minute.";
result["rsp"] = "-5";
param["callback"](result);
return;
}
var repeatsId = jsonMediaValue["value"]["cid"];
var monitorRepeatsCid = cloudICP.util.getMonitorRepeatsCid();
if (undefined == cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]) {
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()] = {};
}
if (undefined != strWindowinfo["videoResizeMode"]) {
videoResizeMode = strWindowinfo["videoResizeMode"];
}
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"] = jsonMediaValue["value"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["videoResizeMode"] = videoResizeMode;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["cid"] = monitorRepeatsCid;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["tabPageId"] = tabPageId;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["repeatsMonitor"] = true;
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["createId"] = repeatsId; // 创建流监控cid
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["releaseTag"] = false; // 创建流监控是否释放
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["winMode"] = strWindowinfo["mode"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["posX"] = strWindowinfo["posX"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["posY"] = strWindowinfo["posY"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["width"] = strWindowinfo["width"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["height"] = strWindowinfo["height"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["buttonIDs"] = strWindowinfo["buttonIDs"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["showToolbar"] = strWindowinfo["showToolbar"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["enableDrag"] = strWindowinfo["enableDrag"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["hide"] = strWindowinfo["hide"];
cloudICP.util.callStatusMgr.videoMediaInfoBuf[monitorRepeatsCid.toString()]["value"]["repeats"] = true;
var params;
if (undefined != param["monitorParam"]["userWindowId"]) {
params =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"hide\": {7}, \"enableDrag\":{8}, \"scrollX\": {9}, \"scrollY\":{10}, \"showToolbar\": {11}, \"buttonIDs\": {12}, \"userWindowId\": {13}, \"repeatsMonitor\": {14}, \"videoResizeMode\": {15}, \"createId\": {16} }}"
.format(
monitorRepeatsCid, monitorRepeatsCid, strWindowinfo["mode"], strWindowinfo["width"],
strWindowinfo["height"], strWindowinfo["posX"], strWindowinfo["posY"], strWindowinfo["hide"],
strWindowinfo["enableDrag"], 0, 0, strWindowinfo["showToolbar"], strWindowinfo["buttonIDs"],
param["monitorParam"]["userWindowId"], true, videoResizeMode, repeatsId
);
} else if (strWindowinfo["mode"] != 'wssflow') {
params =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"x\": {5}, \"y\":{6}, \"hide\": {7}, \"enableDrag\":{8}, \"scrollX\": {9}, \"scrollY\":{10}, \"showToolbar\": {11}, \"buttonIDs\": {12}, \"repeatsMonitor\": {13}, \"reqId\": \"{14}\", \"videoResizeMode\": {16}, \"createId\": {17} }, \"reqId\": \"{15}\" }"
.format(
monitorRepeatsCid, monitorRepeatsCid, strWindowinfo["mode"], strWindowinfo["width"],
strWindowinfo["height"], strWindowinfo["posX"], strWindowinfo["posY"], strWindowinfo["hide"],
strWindowinfo["enableDrag"], 0, 0, strWindowinfo["showToolbar"], strWindowinfo["buttonIDs"],
true, tabPageId, tabPageId, videoResizeMode, repeatsId
);
} else { // 内嵌模式重复视频监控
params =
"{\"description\":\"msp_create_video_window\", \"cmd\": 196610, \"param\":{\"resID\":{0}, \"windowName\": \"{1}\", \"mode\": \"{2}\", \"width\": {3}, \"height\": {4}, \"repeatsMonitor\": {5} , \"reqId\": \"{6}\", \"videoResizeMode\": {8}, \"createId\": {9} }, \"reqId\": \"{7}\" }"
.format(
monitorRepeatsCid, monitorRepeatsCid, strWindowinfo["mode"], strWindowinfo["width"],
strWindowinfo["height"],
true, tabPageId, tabPageId, videoResizeMode, repeatsId
);
}
cloudICP.dispatch.webSocket.sendDataToMediaSDK(params, true);
result["desc"] = "monitorVideo: the same camera success.";
result["rsp"] = "0";
param["callback"](result);
return;
} else if ("" != jsonMediaValue["value"]) {
result["desc"] = "monitorVideo: The object(" + param["to"] +
") is exist three monitor, can't monitor again.";
result["rsp"] = "-5";
param["callback"](result);
return;
}
if (cloudICP.dispatch.video.currentVideoAbility >= cloudICP.dispatch.video.MAX_VIDEO_ABILITY) {
result["rsp"] = "-5";
result["desc"] = "monitorVideo: The ability of monitorVideo is limited";
param["callback"](result);
return;
}
var videoOffers = ["0", "1", "2", "3"];
if (param["monitorParam"]["videooffer"]) {
if(!cloudICP.util.includes(videoOffers, param["monitorParam"]["videooffer"])) {
result["desc"] = "monitorVideo: The videooffer is invalid";
param["callback"](result);
return;
}
}
else {
param["monitorParam"]["videooffer"] = "2";
}
var requestParam = {
"opt": "monitor",
"to": param["to"],
"param": {
"fmt": param["monitorParam"]["fmt"],
"mute": param["monitorParam"]["mute"],
"confirm": param["monitorParam"]["confirm"],
"camera": param["monitorParam"]["camera"],
"videooffer": param["monitorParam"]["videooffer"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": function(data) {
if (undefined != data["rsp"] && "0" == data["rsp"].toString()) {
cloudICP.util.callStatusMgr.windowInfos[param["to"]] = strWindowinfo;
if (undefined != param["monitorParam"]["userWindowId"] && undefined != cloudICP.util
.callStatusMgr.videoMediaInfoBuf[param["monitorParam"]["userWindowId"].toString()]) {
cloudICP.util.callStatusMgr.videoMediaInfoBuf[param["monitorParam"]["userWindowId"]
.toString()]["value"]["to"] = parseInt(param["to"]);
}
}
param["callback"](data)
}
}
cloudICP.util.log(tabPageId, {
"logLevel": "INFO",
"logMsg": requestParam
});
cloudICP.util.ajax(ajaxCfg);
}
/**
* dialVideo
* @param {Object} param {
* to: ,
* dialVideoParam: {
* fmt: ,
* }
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.dialVideo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dialVideo: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dialVideo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "dialVideo: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "dialVideo: The to is invalid";
param["callback"](result);
return;
}
if (!param["dialVideoParam"]) {
result["desc"] = "dialVideo: The dialVideoParam is invalid";
param["callback"](result);
return;
}
if (!param["dialVideoParam"]["fmt"]) {
param["dialVideoParam"]["fmt"] = cloudICP.util.getDefaultFmt();
}
var fmts = ["4K", "2K", "1080P", "720P", "D1", "CIF", "QCIF", "GCIF"];
if (!param["dialVideoParam"]["fmt"] || !cloudICP.util.includes(fmts, param["dialVideoParam"]["fmt"])) {
result["desc"] = "dialVideo: The fmt is invalid";
param["callback"](result);
return;
}
if (cloudICP.config.cameraInfo == 0) {
result["rsp"] = "-6";
result["desc"] = "dialVideo: The camera is unavailable."
param["callback"](result);
return;
}
// if (!cloudICP.util.checkFmt(param["dialVideoParam"]["fmt"])) {
// result["rsp"] = "-5";
// result["desc"] = "dialVideo: The fmt is not supported by the camera.";
// param["callback"](result);
// return;
// }
if (cloudICP.util.callStatusMgr.currentCallState == cloudICP.util.callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "dialVideo: There is a call is ringing."
param["callback"](result);
return;
}
var strWindowinfo = {};
if (undefined != param["dialVideoParam"]) {
strWindowinfo["fmt"] = param["dialVideoParam"]["fmt"];
strWindowinfo["mode"] = param["dialVideoParam"]["mode"];
strWindowinfo["showToolbar"] = param["dialVideoParam"]["showToolbar"];
strWindowinfo["buttonIDs"] = param["dialVideoParam"]["buttonIDs"];
strWindowinfo["posX"] = param["dialVideoParam"]["posX"];
strWindowinfo["posY"] = param["dialVideoParam"]["posY"];
strWindowinfo["width"] = param["dialVideoParam"]["width"];
strWindowinfo["height"] = param["dialVideoParam"]["height"];
strWindowinfo["videoResizeMode"] = param["dialVideoParam"]["videoResizeMode"];
}
if (undefined == param["dialVideoParam"]["mode"] || !cloudICP.util.checkmode(param["dialVideoParam"]["mode"])) {
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": "dialVideo: The mode is invalid, use defult value " + cloudICP.config["mode"] });
strWindowinfo["mode"] = cloudICP.config["mode"];
}
if ("wssflow" == strWindowinfo["mode"]) { //推流模式
if (undefined == param["dialVideoParam"]["width"] || !cloudICP.util.isNumber(param["dialVideoParam"][
"width"
]) || param["dialVideoParam"]["width"] > 2147483647 || param["dialVideoParam"]["width"] <
0) {
result["desc"] = "dialVideo: The width is invalid.";
param["callback"](result);
return;
}
if (undefined == param["dialVideoParam"]["height"] || !cloudICP.util.isNumber(param["dialVideoParam"][
"height"
]) || param["dialVideoParam"]["height"] > 2147483647 || param["dialVideoParam"]["height"] < 0) {
result["desc"] = "dialVideo: The height is invalid.";
param["callback"](result);
return;
}
} else if ("window" == strWindowinfo["mode"]) { //弹窗模式
if (!cloudICP.util.checkWindowParam(param["dialVideoParam"]["posX"])) {
result["desc"] += "dialVideo: The posX is invalid, use defult value 400; ";
strWindowinfo["posX"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["dialVideoParam"]["posY"])) {
result["desc"] += "dialVideo: The posY is invalid, use defult value 400; ";
strWindowinfo["posY"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["dialVideoParam"]["width"])) {
result["desc"] += "dialVideo: The width is invalid, use defult value 640; ";
strWindowinfo["width"] = 640;
}
if (!cloudICP.util.checkWindowParam(param["dialVideoParam"]["height"])) {
result["desc"] += "dialVideo: The height is invalid, use defult value 480; ";
strWindowinfo["height"] = 480;
}
if (undefined == param["dialVideoParam"]["showToolbar"] || !cloudICP.util.checkshowToolbar(param[
"dialVideoParam"]["showToolbar"])) {
result["desc"] += "dialVideo: The showToolbar is invalid, use defult value 1; ";
strWindowinfo["showToolbar"] = 1;
}
if (undefined == param["dialVideoParam"]["buttonIDs"] || !cloudICP.util.checkbuttonIDs(param[
"dialVideoParam"]["buttonIDs"])) {
result["desc"] += "dialVideo: The buttonIDs is invalid, use defult value 0; ";
strWindowinfo["buttonIDs"] = 0;
}
} else {
result["desc"] = "dialVideo: The mode is invalid.";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
//strWindowinfo["to"] = param["to"];
if (callStatusMgr.numberOfCall[callStatusMgr.VIDEO] + callStatusMgr.numberOfCall[callStatusMgr.VIDEOCONF] >=
cloudICP.dispatch.video.MAX_VIDEO_DIAL_NUM ||
cloudICP.dispatch.video.currentVideoAbility >= cloudICP.dispatch.video.MAX_VIDEO_ABILITY) {
result["rsp"] = "-7";
result["desc"] = "dialVideo: The ability of video call is limited";
param["callback"](result);
return;
}
if (callStatusMgr.isAnyCallExisted()) {
result["rsp"] = "-8";
result["desc"] = "dialVideo: The voice dial is conflicted with other calls";
param["callback"](result);
return;
}
callStatusMgr.windowInfos[param["to"]] = strWindowinfo;
var requestParam = {
"opt": "dial",
"to": param["to"],
"param": {
"fmt": param["dialVideoParam"]["fmt"],
"video_format": cloudICP.config.cameraInfo.toString(),
"audio_format": "1"
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* answer
* @param {Object} param {
* cid: ,
* windowInfo: {
* width:
* height:
* posX:
* posY:
* }
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.answer = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "answer: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "answer: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "answer: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "answer: The cid is invalid";
param["callback"](result);
return;
}
var strWindowinfo = {};
if (param["windowInfo"] == undefined || undefined == param["windowInfo"]["mode"] || !cloudICP.util.checkmode(param["windowInfo"]["mode"])) {
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": "answer: The mode is invalid, use defult value " + cloudICP.config["mode"] });
strWindowinfo["mode"] = cloudICP.config["mode"];
}
if (param["windowInfo"] != undefined) {
strWindowinfo["mode"] = param["windowInfo"]["mode"];
strWindowinfo["showToolbar"] = param["windowInfo"]["showToolbar"];
strWindowinfo["buttonIDs"] = param["windowInfo"]["buttonIDs"];
strWindowinfo["posX"] = param["windowInfo"]["posX"];
strWindowinfo["posY"] = param["windowInfo"]["posY"];
strWindowinfo["width"] = param["windowInfo"]["width"];
strWindowinfo["height"] = param["windowInfo"]["height"];
strWindowinfo["videoResizeMode"] = param["windowInfo"]["videoResizeMode"];
if ("wssflow" == strWindowinfo["mode"]) { //推流模式
if (undefined == param["windowInfo"]["width"] || !cloudICP.util.isNumber(param["windowInfo"][
"width"
]) || param["windowInfo"]["width"] > 2147483647 || param["windowInfo"]["width"] < 0) {
result["desc"] = "answer: The width is invalid.";
param["callback"](result);
return;
}
if (undefined == param["windowInfo"]["height"] || !cloudICP.util.isNumber(param["windowInfo"][
"height"
]) || param["windowInfo"]["height"] > 2147483647 || param["windowInfo"]["height"] < 0) {
result["desc"] = "answer: The height is invalid.";
param["callback"](result);
return;
}
} else if ("window" == strWindowinfo["mode"]) { //弹窗模式
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posX"])) {
result["desc"] += "answer: The posX is invalid, use defult value 400; ";
strWindowinfo["posX"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["posY"])) {
result["desc"] += "answer: The posY is invalid, use defult value 400; ";
strWindowinfo["posY"] = 400;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["width"])) {
result["desc"] += "answer: The width is invalid, use defult value 640; ";
strWindowinfo["width"] = 640;
}
if (!cloudICP.util.checkWindowParam(param["windowInfo"]["height"])) {
result["desc"] += "answer: The height is invalid, use defult value 480; ";
strWindowinfo["height"] = 480;
}
if (undefined == param["windowInfo"]["showToolbar"] || !cloudICP.util.checkshowToolbar(param[
"windowInfo"]["showToolbar"])) {
result["desc"] += "answer: The showToolbar is invalid, use defult value 1; ";
strWindowinfo["showToolbar"] = 1;
}
if (undefined == param["windowInfo"]["buttonIDs"] || !cloudICP.util.checkbuttonIDs(param["windowInfo"][
"buttonIDs"
])) {
result["desc"] += "answer: The buttonIDs is invalid, use defult value 0; ";
strWindowinfo["buttonIDs"] = 0;
}
} else {
result["desc"] = "answer: The mode is invalid.";
param["callback"](result);
return;
}
strWindowinfo["iCid"] = param["cid"];
} else {
strWindowinfo["showToolbar"] = 1;
strWindowinfo["buttonIDs"] = 0;
strWindowinfo["iCid"] = param["cid"];
strWindowinfo["width"] = 640;
strWindowinfo["height"] = 480;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.windowInfos[param["cid"]] = strWindowinfo;
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
var str;
if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.CONNECTING) {
str = "answer: The cid is answered";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.HOLD) {
str = "answer: The cid is holded";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.RELEASE) {
str = "answer: The cid is ended";
} else {
str = "answer: The cid is invalid";
}
result["rsp"] = "-4";
result["desc"] = str;
param["callback"](result);
return;
}
var call = calls[param["cid"]];
if (call && call["callType"] == cloudICP.util.callStatusMgr.VIDEODISPATCH) {
// current do nothing
} else {
if (cloudICP.config.cameraInfo == 0) {
result["rsp"] = "-5";
result["desc"] = "answer: The camera is unavailable."
param["callback"](result);
return;
};
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.connectingCallMgr[callStatusMgr.VIDEO].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.DISCREET].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.VIDEOCONF].length != 0) {
result["rsp"] = "-6";
result["desc"] = "answer: The call is conflicted with other calls"
param["callback"](result);
return;
};
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (cloudICP.dispatch.video.currentVideoAbility >= cloudICP.dispatch.video.MAX_VIDEO_ABILITY) {
result["rsp"] = "-7";
result["desc"] = "answer: The ability of video is limited";
param["callback"](result);
return;
}
var requestParam = {
"opt": "recv",
"cid": param["cid"],
"param": {
"video_format": cloudICP.config.cameraInfo.toString(),
"audio_format": "1"
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* reject
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.reject = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "reject: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "reject: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "reject: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "reject: The cid is invalid";
param["callback"](result);
return;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
var str;
if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.CONNECTING) {
str = "reject: The cid is answered";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.HOLD) {
str = "reject: The cid is holded";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.RELEASE) {
str = "reject: The cid is ended";
} else {
str = "reject: The cid is invalid";
}
result["rsp"] = "-4";
result["desc"] = str;
param["callback"](result);
return;
}
var requestParam = {
"opt": "reject",
"cid": param["cid"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
// 停止振铃音
var mediaParam =
"{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(param["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VIDEO, callStatusMgr.RELEASE, {
"value": {
"cid": param["cid"]
}
});
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* release
* @param {Object} param {
* cid: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.release = function(param) {
cloudICP.util.callStatusMgr.delWssflowDemoMap(param["cid"]);
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "release: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "release: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "release: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "release: The cid is invalid";
param["callback"](result);
return;
}
var cid = param["cid"];
var callee = 0;
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.windowInfos[key]["userWindowId"] && cloudICP.util
.callStatusMgr.windowInfos[key]["userWindowId"] == param["cid"]) {
callee = key;
}
});
if (0 != callee) {
var bRuning = false;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"] && cloudICP.util
.callStatusMgr.videoMediaInfoBuf[key]["value"]["userWindowId"] == param["cid"]) {
bRuning = true;
cid = key;
}
});
if (false == bRuning) {
delete cloudICP.util.callStatusMgr.windowInfos[callee.toString()];
result["rsp"] = "-2";
result["desc"] = "release: The userWindowId(" + param["cid"] + ") is release.";
param["callback"](result);
return;
}
}
var call = cloudICP.util.callStatusMgr.allCalls[cid];
if (call && call["caller"] != cloudICP.userInfo["isdn"] && call.callState == cloudICP.util.callStatusMgr
.RINGING) {
result["rsp"] = "-4";
result["desc"] = "release: The callee can't release a ringing call.";
param["callback"](result);
return;
}
var repeats;
//判断监控对象是否被多次监控
var jsonMediaValue = {
"value": ""
};
var bExistRepeatsMonitor = false;
var callee;
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]) {
callee = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["callee"];
}
if (!cloudICP.util.checkUserIsMonitor(cloudICP.userInfo["isdn"], callee, jsonMediaValue)) {
if ("" != jsonMediaValue["value"]) {
repeats = true;
}
}
if (undefined != repeats && true == repeats && undefined == cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid][
"value"
]["repeats"]) {
bExistRepeatsMonitor = true;
}
var createReleaseTag = true;
//重复视频监控的业务需要释放
if (undefined != repeats && repeats == true) {
var newEvent = {
"eventName": "",
"rsp": "3009",
"value": {}
}
if (true == bExistRepeatsMonitor) { //首次监控该对象发起的业务结束,重复监控业务也要被关闭
var params = "{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(cid), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(params, true);
//通知上层OnCallRelease消息
newEvent["value"]["caller"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["caller"];
newEvent["value"]["callee"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["callee"];
newEvent["value"]["cid"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["cid"];
newEvent["value"]["fmt"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["fmt"];
newEvent["value"]["calltype"] = "monitor";
newEvent["value"]["releasetype"] = "self";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(param);
// 创建流被释放
cloudICP.util.updateCopyMonitorReleaseTag(cloudICP.userInfo["isdn"], callee);
createReleaseTag = false;
} else { //只关闭重复监控的业务
// 删除视频媒体通道
var params = "{\"description\":\"msp_delete_video_channel\", \"cmd\": 65540, \"param\":{\"resID\":{0}}, \"reqId\": \"{1}\"}"
.format(
parseInt(cid), tabPageId
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(params, true);
//通知上层OnCallRelease消息
newEvent["value"]["caller"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["caller"];
newEvent["value"]["callee"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["callee"];
newEvent["value"]["cid"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["cid"];
newEvent["value"]["fmt"] = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["fmt"];
newEvent["value"]["calltype"] = "monitor";
newEvent["value"]["releasetype"] = "other";
newEvent["value"]["src"] = "";
newEvent["value"]["direction"] = "out";
newEvent["eventName"] = "OnCallRelease";
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnCallRelease"].event = newEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnCallRelease"]);
cloudICP.util.callStatusMgr.delMediaModeInfo(param);
var createId;
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["createId"]) {
createId = cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]["value"]["createId"];
}
createReleaseTag = cloudICP.util.getCopyMonitorReleaseTag(newEvent["value"]["caller"],
newEvent["value"]["callee"]);
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid]) { //该视频窗口有业务正在使用
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[cid];
}
result["rsp"] = "0";
result["desc"] = "release: repeats monitor success.";
param["callback"](result);
if (createReleaseTag) { // 原视频流已经被释放场景,将cid赋值为创建视频流id 走释放场景
cid = createId;
}
}
}
cloudICP.util.log(undefined, {
"logLevel": "info",
"logMsg": "bExistRepeatsMonitor: " + bExistRepeatsMonitor + " createReleaseTag: " + createReleaseTag + " cid: " + cid
});
if (!bExistRepeatsMonitor && createReleaseTag) {
if(undefined == repeats || false == repeats) { // 不存在复制流时
// 停止提示音
var stopRingParam = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(cid)
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(stopRingParam, true);
}
var requestParam = {
"opt": "close",
"cid": cid
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"] + "/close/" + cid;
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "1") {
data["rsp"] = "0";
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
}
/**
* dispatchVideo
* @param {Object} param {
* src: ,
* fmt: ,
* dest: [
* {"isdn": ,}
* ]
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.dispatchVideo = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dispatchVideo: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dispatchVideo: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "dispatchVideo: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["src"])) {
result["desc"] = "dispatchVideo: The src is invalid";
param["callback"](result);
return;
}
if (!param["fmt"]) {
param["fmt"] = "720P";
}
var fmts = ["1080P", "720P", "D1", "CIF", "NO"];
if (!param["fmt"] || !cloudICP.util.includes(fmts, param["fmt"])) {
result["desc"] = "dispatchVideo: The fmt is invalid";
param["callback"](result);
return;
}
if (param["dest"] != undefined) {
for (var item = 0; item < param["dest"].length; item++) {
if (!cloudICP.util.checkCallNumber(param["dest"][item]["isdn"])) {
result["desc"] = "dispatchVideo: reslist is invalid";
param["callback"](result);
return;
}
}
}
if (param["destGroups"] != undefined) {
for (var item = 0; item < param["destGroups"].length; item++) {
if (!cloudICP.util.checkCallNumber(param["destGroups"][item]["isdn"])) {
result["desc"] = "dispatchVideo: destGroups is invalid";
param["callback"](result);
return;
}
}
}
var requestParam = {
"opt": "dispatch",
"param": {
"src": param["src"],
"fmt": param["fmt"],
"dest": param["dest"],
"destGroups": param["destGroups"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* cancelVideoDispatch
* @param {Object} param {
* src: ,
* dest: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.cancelVideoDispatch = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelVideoDispatch: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelVideoDispatch: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "cancelVideoDispatch: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["src"])) {
result["desc"] = "cancelVideoDispatch: The src is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["dest"]) && !cloudICP.util.checkIsdn(param["destGroup"])) {
result["desc"] = "cancelVideoDispatch: The dest and destGroup is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "dispatchDelete",
"param": {
"src": param["src"],
"dest": param["dest"],
"destGroup": param["destGroup"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* startVideoUploadWall
* @param {Object} param {
* src: ,
* channel: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.startVideoUploadWall = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "startVideoUploadWall: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "startVideoUploadWall: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "startVideoUploadWall: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["src"])) {
result["desc"] = "startVideoUploadWall: The src is invalid";
param["callback"](result);
return;
}
if (!param["channel"] || !cloudICP.util.isNumber(param["channel"])) {
result["desc"] = "startVideoUploadWall: The channel is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "start",
"param": {
"src": param["src"],
"channel": param["channel"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"] + "/videowall";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* stopVideoUploadWall
* @param {Object} param {
* src: ,
* channel: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.stopVideoUploadWall = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopVideoUploadWall: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "stopVideoUploadWall: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "stopVideoUploadWall: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["src"])) {
result["desc"] = "stopVideoUploadWall: The src is invalid";
param["callback"](result);
return;
}
if (!param["channel"] || !cloudICP.util.isNumber(param["channel"])) {
result["desc"] = "stopVideoUploadWall: The channel is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "stop",
"param": {
"src": param["src"],
"channel": param["channel"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"] + "/videowall";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* ptzctrlCamera
* @param {Object} param {
* to: ,
* act: ,
* value: ,
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.ptzctrlCamera = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param == undefined || typeof param == 'undefined') {
return;
}
if (typeof param["tabPageId"] != 'undefined' && param["tabPageId"] != undefined) {
var param = param["value"];
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ptzctrlCamera: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ptzctrlCamera: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "ptzctrlCamera: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "ptzctrlCamera: The to is invalid";
param["callback"](result);
return;
}
if (!param["act"] || !cloudICP.util.isNumber(param["act"]) || parseInt(param["act"]) < 1 || parseInt(param[
"act"]) > 18) {
result["desc"] = "ptzctrlCamera: The act is invalid";
param["callback"](result);
return;
}
if (!param["value"] || !cloudICP.util.isNumber(param["value"]) || parseInt(param["value"]) < 1 || parseInt(
param["value"]) > 10) {
result["desc"] = "ptzctrlCamera: The value is invalid";
param["callback"](result);
return;
}
var requestParam = {
"to": param["to"],
"param": {
"act": param["act"],
"value": param["value"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/video/" + cloudICP.userInfo["isdn"] + "/ptzcontrol";
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* setWssflowWinFmttype
* @param {Object} param {
* callback: ,
* }
*/
ICPSDK_Dispatch_Video.prototype.setWssflowWinFmttype = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
var msg = {
"description": "msp_set_wssflow_window_fmttype",
"cmd": 0x10014,
"param": {}
};
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "setWssflowWinFmttype: param is invalid"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["resID"].toString())) {
result["desc"] = "setWssflowWindowFmttype: The resID is invalid";
if (!!param["callback"]) {
param["callback"](result);
}
return;
}
msg["param"]["resID"] = parseInt(param["resID"]);
msg["param"]["width"] = parseInt(param["width"]);
msg["param"]["height"] = parseInt(param["height"]);
cloudICP.dispatch.webSocket._mediaSdkRspFuncs[msg.cmd.toString()] = param["callback"];
var curTime = cloudICP.util.getCurrentDate();
cloudICP.util.log(undefined, { "logLevel": "info", "logMsg": "setWssflowWinFmttype send msg=" + JSON.stringify(msg) });
cloudICP.dispatch.webSocket.sendDataToMediaSDK(msg, true);
};
function ICPSDK_Dispatch_Voice() {
this.MAX_SUB_LIST = 200;
this.MAX_AMBIENCE_NUM = 1;
this.MAX_HALF_DIAL_NUM = 1;
this.MAX_VOICE_NUM = 30;
};
/**
* subscribeUserStatus() subscribe users
* @param {Object} param {
* reslist: [
* {isdn: ""},
* ],
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.subscribeUserStatus = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "subscribeUserStatus: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "subscribeUserStatus: callback is not a function"
});
return;
}
var subUserParam = {};
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "subscribeUserStatus: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!(Array.isArray(param["reslist"]) && param["reslist"].length > 0 && param["reslist"].length <= this
.MAX_SUB_LIST)) {
result["desc"] = "subscribeUserStatus: reslist is invalid";
param["callback"](result);
return;
}
for (var item = 0; item < param["reslist"].length; item++) {
if (!cloudICP.util.checkIsdn(param["reslist"][item]["isdn"])) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "subscribeUserStatus: isdn is invalid."
});
result["desc"] = "subscribeUserStatus: reslist is invalid";
param["callback"](result);
return;
}
}
subUserParam["type"] = "sub";
subUserParam["reslist"] = param["reslist"];
var url = cloudICP.getSdkServerUrl() + "/v1/person/" + cloudICP.userInfo["isdn"];
subUserParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": subUserParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* unsubscribeUserStatus() unsubUser users
* @param {Object} param {
* reslist: [
* {isdn: ""},
* ],
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.unsubscribeUserStatus = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unsubscribeUserStatus: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unsubscribeUserStatus: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unsubscribeUserStatus: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!(Array.isArray(param["reslist"]) && param["reslist"].length > 0 && param["reslist"].length <= this
.MAX_SUB_LIST)) {
result["desc"] = "unsubscribeUserStatus: reslist is is invalid";
param["callback"](result);
return;
}
for (var item = 0; item < param["reslist"].length; item++) {
if (!cloudICP.util.checkIsdn(param["reslist"][item]["isdn"])) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unsubscribeUserStatus: isdn is invalid."
});
result["desc"] = "unsubscribeUserStatus: isdn is invalid";
param["callback"](result);
return;
}
}
var unsubUserParam = {};
unsubUserParam["type"] = "unsub";
unsubUserParam["reslist"] = param["reslist"];
var url = cloudICP.getSdkServerUrl() + "/v1/person/" + cloudICP.userInfo["isdn"];
unsubUserParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"async": false,
"data": unsubUserParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* dial
* @param {Object} param {
* to:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.dial = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dial: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dial: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "dial: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "dial: The to is invalid";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentCallState == callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "dial: There is a call is ringing."
param["callback"](result);
return;
}
if (callStatusMgr.numberOfCall[callStatusMgr.VOICE] + callStatusMgr.numberOfCall[callStatusMgr.VOICECONF] >
cloudICP.dispatch.voice.MAX_VOICE_NUM) {
result["rsp"] = "-5";
result["desc"] = "dial: The number of voice call is limited to " + cloudICP.dispatch.voice.MAX_VOICE_NUM;
param["callback"](result);
return;
}
if (callStatusMgr.isAnyCallExisted()) {
result["rsp"] = "-6";
result["desc"] = "dial: The voice dial is conflicted with other calls";
param["callback"](result);
return;
}
var requestParam = {
"opt": "dial",
"to": param["to"],
"Answer-Mode": param["Answer-Mode"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* answer
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.answer = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "answer: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "answer: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "answer: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "answer: The cid is invalid";
param["callback"](result);
return;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
result["rsp"] = "-40002";
result["desc"] = "";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.connectingCallMgr[callStatusMgr.VIDEO].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.DISCREET].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.VIDEOCONF].length != 0) {
result["rsp"] = "-5";
result["desc"] = "answer: The call is conflicted with other calls"
param["callback"](result);
return;
};
var call = calls[param["cid"]];
var callStatusMgr = cloudICP.util.callStatusMgr;
if (call) {
var callType = call.callType;
switch (callType) {
case callStatusMgr.AMBIENCE:
break;
case callStatusMgr.VOICE:
if (callStatusMgr.numberOfCall[callStatusMgr.VOICE] + callStatusMgr.numberOfCall[callStatusMgr
.VOICECONF] > cloudICP.dispatch.voice.MAX_VOICE_NUM) {
result["rsp"] = "-4";
result["desc"] = "answer: The number of voice call is limited to " + cloudICP.dispatch.voice
.MAX_VOICE_NUM;
param["callback"](result);
return;
}
break;
case callStatusMgr.HALFVOICE:
if (callStatusMgr.numberOfCall[callStatusMgr.HALFVOICE] >= cloudICP.dispatch.voice
.MAX_HALF_DIAL_NUM) {
result["rsp"] = "-4";
result["desc"] = "answer: The number of halfDial is limited to " + cloudICP.dispatch.voice
.MAX_HALF_DIAL_NUM;
param["callback"](result);
return;
}
break;
default:
break;
}
}
var requestParam = {
"opt": "recv",
"cid": param["cid"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* reject
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.reject = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "reject: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "reject: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "reject: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "reject: The cid is invalid";
param["callback"](result);
return;
}
var calls = cloudICP.util.callStatusMgr.allCalls;
if (calls[param["cid"]] && calls[param["cid"]]["callState"] >= cloudICP.util.callStatusMgr.CONNECTING) {
var str;
if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.CONNECTING) {
str = "reject: The cid is answered";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.HOLD) {
str = "reject: The cid is holded";
} else if (calls[param["cid"]]["callState"] == cloudICP.util.callStatusMgr.RELEASE) {
str = "reject: The cid is ended";
} else {
str = "reject: The cid is invalid";
}
result["rsp"] = "-4";
result["desc"] = str;
param["callback"](result);
return;
}
var requestParam = {
"opt": "reject",
"cid": param["cid"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
// 停止振铃音
var mediaParam =
"{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(param["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam, true);
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.updateCallStatus(callStatusMgr.VOICE, callStatusMgr.RELEASE, {
"value": {
"cid": param["cid"]
}
});
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* release
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.release = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "release: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "release: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "release: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "release: The cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (call && call["caller"] != cloudICP.userInfo["isdn"] && call.callState == cloudICP.util.callStatusMgr
.RINGING) {
result["rsp"] = "-4";
result["desc"] = "release: The callee can't release a ringing call.";
param["callback"](result);
return;
}
// 停止提示音
var stopRingParam = "{\"description\":\"msp_stop_tone\", \"cmd\": 131076, \"param\":{\"cid\": {0}}}".format(
parseInt(param["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(stopRingParam, true);
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/close/" + param["cid"];
var requestParam = {};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "1") {
data["rsp"] = "0";
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* transfer
* @param {Object} param {
* to:,
* speaker:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.transfer = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "transfer: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "transfer: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "transfer: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "transfer: The to is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["speaker"])) {
result["desc"] = "transfer: The speaker is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "transfer",
"to": param["to"],
"speaker": param["speaker"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
if (data["rsp"] != 0) {
var retEvent = {
"eventName": "OnTransferFailure",
"rsp": "0"
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnTransferFailure"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"][
"OnTransferFailure"]);
}
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* cancelTransfer
* @param {Object} param {
* to:,
* speaker:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.cancelTransfer = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelTransfer: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "cancelTransfer: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "cancelTransfer: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "cancelTransfer: The to is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["speaker"])) {
result["desc"] = "cancelTransfer: The speaker is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "transfercancel",
"to": param["to"],
"speaker": param["speaker"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* breakOff
* @param {Object} param {
* to:,
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.breakOff = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "breakOff: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "breakOff: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "breakOff: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "breakOff: The to is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "P2P",
"to": param["to"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/breakoff";
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
if (data["rsp"] != 0) {
var retEvent = {
"eventName": "OnBreakOffFailure",
"rsp": "0"
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnBreakOffFailure"].event = retEvent;
sendEvent2Page(reqId, this.EVENT_LIST["VoiceNotify"]["OnBreakOffFailure"])
}
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* halfDial
* @param {Object} param {
* to:,
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.halfDial = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "halfDial: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "halfDial: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "halfDial: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "halfDial: The to is invalid";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentCallState == callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "halfDial: There is a call is ringing."
param["callback"](result);
return;
}
if (callStatusMgr.numberOfCall[callStatusMgr.HALFVOICE] >= cloudICP.dispatch.voice.MAX_HALF_DIAL_NUM) {
var cid = callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE][0];
var call = callStatusMgr.allCalls[cid];
if (call["callee"] != param["to"] && call["caller"] != param["to"]) {
result["rsp"] = "-5";
result["desc"] = "halfDial: The number of halfDial is limited to " + cloudICP.dispatch.voice
.MAX_HALF_DIAL_NUM;
param["callback"](result);
return;
}
}
if (callStatusMgr.connectingCallMgr[callStatusMgr.VIDEO].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.DISCREET].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0 ||
callStatusMgr.connectingCallMgr[callStatusMgr.VIDEOCONF].length != 0) {
if (callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0) {
var cid = callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE][0];
var call = callStatusMgr.allCalls[cid];
if (call["callee"] != param["to"] && call["caller"] != param["to"]) {
result["rsp"] = "-6";
result["desc"] = "halfDial: The voice call is conflicted with other calls";
param["callback"](result);
return;
}
}
}
if (callStatusMgr.isAnyCallExisted()) {
if (callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE].length != 0) {
var cid = callStatusMgr.connectingCallMgr[callStatusMgr.HALFVOICE][0];
var call = callStatusMgr.allCalls[cid];
if (call["callee"] != param["to"] && call["caller"] != param["to"]) {
result["rsp"] = "-6";
result["desc"] = "halfDial: The voice call is conflicted with other calls";
param["callback"](result);
return;
}
} else {
result["rsp"] = "-6";
result["desc"] = "halfDial: The voice call is conflicted with other calls";
param["callback"](result);
return;
}
}
if (cloudICP.dispatch.group.isCurrentPtt["isPtt"]) {
result["rsp"] = "-6";
result["desc"] = "halfDial: The The voice call is conflicted with other calls.";
param["callback"](result);
return;
}
var requestParam = {
"opt": "halfDial",
"to": param["to"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* releaseHalfDial
* @param {Object} param {
* cid:,
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.releaseHalfDial = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "releaseHalfDial: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "releaseHalfDial: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "releaseHalfDial: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "releaseHalfDial: The cid is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "halfDialRelease",
"cid": param["cid"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
// 关闭麦克风
var mediaParam =
"{\"description\":\"msp_mute_audio_channel\", \"cmd\": 65549, \"param\":{\"resID\": {0}, \"mute\":true}}"
.format(
parseInt(param["cid"])
);
cloudICP.dispatch.webSocket.sendDataToMediaSDK(mediaParam, true);
param["callback"](data)
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* closeHalfDial
* @param {Object} param {
* cid:,
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.closeHalfDial = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "closeHalfDial: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "closeHalfDial: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "closeHalfDial: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "closeHalfDial: The cid is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "close",
"cid": param["cid"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data)
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* discreetListen
* @param {Object} param {
* opType : start|stop
* to:,
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.discreetListen = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "discreetListen: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "discreetListen: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "discreetListen: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if ("start" != param["opType"] && "stop" != param["opType"]) {
result["opType"] = "discreetListen: opType is invalid";
param["callback"](result);
return;
}
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "discreetListen: The to is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": param["opType"],
"to": param["to"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/discreetlisten";
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
if (param["opType"] == "start") {
if (data["rsp"] == 0) {
var retEvent = {
"eventName": "OnStartDiscreetlistenSuccess",
"rsp": "0",
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnStartDiscreetlistenSuccess"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"][
"OnStartDiscreetlistenSuccess"]);
} else {
var retEvent = {
"eventName": "OnStartDiscreetlistenFailure",
"rsp": "0",
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnStartDiscreetlistenFailure"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"][
"OnStartDiscreetlistenFailure"]);
}
} else {
if (data["rsp"] == 0) {
var retEvent = {
"eventName": "OnStopDiscreetlistenSuccess",
"rsp": "0",
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnStopDiscreetlistenSuccess"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"][
"OnStopDiscreetlistenSuccess"]);
} else {
var retEvent = {
"eventName": "OnStopDiscreetlistenFailure",
"rsp": "0",
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnStopDiscreetlistenFailure"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"][
"OnStopDiscreetlistenFailure"]);
}
}
}
}
cloudICP.util.ajax(ajaxCfg);
}
/**
* ambienceListen
* @param {Object} param {
* to:,
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.ambienceListen = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ambienceListen: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ambienceListen: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "ambienceListen: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "ambienceListen: The to is invalid";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentCallState == callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "ambienceListen: There is a call is ringing."
param["callback"](result);
return;
}
if (callStatusMgr.isAnyCallExisted()) {
result["rsp"] = "-6";
result["desc"] = "ambienceListen: The voice dial is conflicted with other calls";
param["callback"](result);
return;
}
var requestParam = {
"to": param["to"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/ambiencelisten";
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* dialout
* @param {Object} param {
* to:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.dialout = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dialout: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dialout: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "dialout: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "dialout: The to is invalid";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentCallState == callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "dialout: There is a call is ringing."
param["callback"](result);
return;
}
if (callStatusMgr.numberOfCall[callStatusMgr.VOICE] + callStatusMgr.numberOfCall[callStatusMgr.VOICECONF] >
cloudICP.dispatch.voice.MAX_VOICE_NUM) {
result["rsp"] = "-5";
result["desc"] = "dialout: The number of voice call is limited to " + cloudICP.dispatch.voice.MAX_VOICE_NUM;
param["callback"](result);
return;
}
if (callStatusMgr.isAnyCallExisted()) {
result["rsp"] = "-6";
result["desc"] = "dialout: The voice dial is conflicted with other calls";
param["callback"](result);
return;
}
var requestParam = {
"opt": "ticDial",
"to": param["to"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": param["callback"]
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* voiceBroadcast
* @param {Object} param {
* to:
* audioFile:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.voiceBroadcast = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dial: param is invalid"
});
return;
}
if (undefined == param["callback"] || (undefined == param["audioFile"] && undefined == param["audioBase64"]) || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "dial: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "dial: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "dial: The to is invalid";
param["callback"](result);
return;
}
if (undefined != param["audioFile"] && !cloudICP.util.checkFileType(param["audioFile"],"wav")) {
result["desc"] = "dial: The audioFile is invalid";
param["callback"](result);
return;
}
var requestParam = {
"opt": "ticDial",
"to": param["to"]
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
var callStatusMgr = cloudICP.util.callStatusMgr;
callStatusMgr.saveBroadcastFile(param["to"], param["audioFile"], param["audioBase64"]);
cloudICP.util.ajax(ajaxCfg);
}
/**
* releaseDialout
* @param {Object} param {
* cid:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.releaseDialout = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "releaseDialout: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "releaseDialout: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "releaseDialout: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "releaseDialout: The cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (call && call["caller"] != cloudICP.userInfo["isdn"] && call.callState == cloudICP.util.callStatusMgr
.RINGING) {
result["rsp"] = "-4";
result["desc"] = "releaseDialout: The callee can't release a ringing call.";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/ticclose/" + param[
"cid"];
var requestParam = {};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "DELETE",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "1") {
data["rsp"] = "0";
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* intercept
* @param {Object} param {
* to:
* callback: ,
* }
*/
ICPSDK_Dispatch_Voice.prototype.intercept = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "intercept: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "intercept: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "intercept: The user does not logined";
param["callback"](result);
return;
}
result["rsp"] = "-2";
if (!cloudICP.util.checkIsdn(param["to"])) {
result["desc"] = "intercept: The to is invalid";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (callStatusMgr.currentCallState == callStatusMgr.RINGING) {
result["rsp"] = "-4";
result["desc"] = "intercept: There is a call is ringing."
param["callback"](result);
return;
}
if (callStatusMgr.numberOfCall[callStatusMgr.VOICE] + callStatusMgr.numberOfCall[callStatusMgr.VOICECONF] >
cloudICP.dispatch.voice.MAX_VOICE_NUM) {
result["rsp"] = "-5";
result["desc"] = "intercept: The number of voice call is limited to " + cloudICP.dispatch.voice
.MAX_VOICE_NUM;
param["callback"](result);
return;
}
if (callStatusMgr.isAnyCallExisted()) {
result["rsp"] = "-6";
result["desc"] = "intercept: The voice dial is conflicted with other calls";
param["callback"](result);
return;
}
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"] + "/breakin/" + param["to"];
var requestParam = {};
requestParam["reqId"] = tabPageId;
var ajaxCfg = {
"type": "PUT",
"url": url,
"data": requestParam,
"callback": function(data) {
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* hold
* @param {
* cid:
* callback:
* }
*/
ICPSDK_Dispatch_Voice.prototype.hold = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "hold: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "hold: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "hold: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "hold: The cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (!call) {
result["rsp"] = "-4";
result["desc"] = "hold: The call is not existed";
param["callback"](result);
return;
} else if (call["callState"] != cloudICP.util.callStatusMgr.CONNECTING) {
result["rsp"] = "-4";
result["desc"] = "hold: The call is not existed";
param["callback"](result);
return;
}
var requestParam = {
"opt": "hold",
"param": {
type: "0",
cid: param["cid"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
cloudICP.util.callStatusMgr.holdMgr.push(param["cid"]);
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
/**
* unhold
* @param {
* cid:
* callback:
* }
*/
ICPSDK_Dispatch_Voice.prototype.unhold = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unhold: param is invalid"
});
return;
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "unhold: callback is not a function"
});
return;
}
var result = {
"rsp": "-3",
"desc": ""
};
if (!cloudICP.userInfo["isdn"]) {
result["desc"] = "unhold: The user does not logined";
param["callback"](result);
return;
}
//check param valid
result["rsp"] = "-2";
if (!cloudICP.util.checkCid(param["cid"])) {
result["desc"] = "unhold: The cid is invalid";
param["callback"](result);
return;
}
var call = cloudICP.util.callStatusMgr.allCalls[param["cid"]];
if (!call) {
result["rsp"] = "-4";
result["desc"] = "unhold: The call is not existed";
param["callback"](result);
return;
} else if (call["callState"] != cloudICP.util.callStatusMgr.HOLD) {
result["rsp"] = "-2";
result["desc"] = "unhold: The cid is not holded";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (cloudICP.util.callStatusMgr.numberOfCall[callStatusMgr.VIDEO] + cloudICP.util.callStatusMgr.numberOfCall[
callStatusMgr.VIDEOCONF] > 0) {
result["rsp"] = "-7";
result["desc"] = "unhold: There is a video existed";
param["callback"](result);
return;
}
var callStatusMgr = cloudICP.util.callStatusMgr;
if (cloudICP.util.callStatusMgr.numberOfCall[callStatusMgr.DISCREET] + cloudICP.util.callStatusMgr.numberOfCall[
callStatusMgr.HALFVOICE] > 0) {
result["rsp"] = "-8";
result["desc"] = "unhold: There is a discreet or halfdial existed";
param["callback"](result);
return;
}
var requestParam = {
"opt": "unhold",
"param": {
type: "0",
cid: param["cid"]
}
};
var url = cloudICP.getSdkServerUrl() + "/v1/voicecall/" + cloudICP.userInfo["isdn"];
requestParam["param"]["reqId"] = tabPageId;
var ajaxCfg = {
"type": "POST",
"url": url,
"data": requestParam,
"callback": function(data) {
if (data["rsp"] == "0") {
cloudICP.util.callStatusMgr.holdMgr.push(param["cid"]);
}
param["callback"](data);
}
}
cloudICP.util.ajax(ajaxCfg);
};
function ICPSDK_Dispatch_WebSocket() {
this._sdkServerWs = null;
this._localDeamonWs = null;
this._medisServerWs = null;
this._mediaSdkRspFuncs = {};
this._mediaDataServerWs = null;
this.reconnectMediaServiceId = -1;
this.reconnectMediaDataServiceId = -1;
this.reconnectLocalDeamonId = -1;
this.isMSPConflicted = false;
this.needRecontMediaServer = true;
this.needRecontMediaDataServer = true;
this.needRecontLocalDeamonServer = true;
};
/**
* 连接本地Deamon线程
*/
ICPSDK_Dispatch_WebSocket.prototype.connectToLocalDeamon = function() {
if (this._localDeamonWs) {
return;
}
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToLocalDeamon: WebSocket connection begin.")) {
console.log("[INFO][" + curTime + "] connectToLocalDeamon: WebSocket connection begin.");
};
if (typeof MozWebSocket != "undefined") {
this._localDeamonWs = new MozWebSocket(cloudICP.getLocalDeamonUrl());
} else {
this._localDeamonWs = new WebSocket(cloudICP.getLocalDeamonUrl());
}
// 监听sdkserver websocket建立事件
this._localDeamonWs.onopen = function(event) {
clearInterval(cloudICP.dispatch.webSocket.reconnectLocalDeamonId);
cloudICP.dispatch.webSocket.reconnectLocalDeamonId = -1;
clearInterval(cloudICP.dispatch.webSocket.reconnectMediaServiceId);
cloudICP.dispatch.webSocket.reconnectMediaServiceId = -1;
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToLocalDeamon: WebSocket connection open.")) {
console.log("[INFO][" + curTime + "] connectToLocalDeamon: WebSocket connection open.");
};
};
this._localDeamonWs.onclose = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToLocalDeamon: WebSocket connection closed.")) {
console.log("[INFO][" + curTime + "] connectToLocalDeamon: WebSocket connection closed.");
};
cloudICP.dispatch.webSocket._localDeamonWs = null;
clearInterval(cloudICP.dispatch.webSocket.reconnectMediaServiceId);
cloudICP.dispatch.webSocket.reconnectMediaServiceId = -1;
if (cloudICP.dispatch.webSocket.reconnectLocalDeamonId == -1 && cloudICP.dispatch.webSocket.needRecontLocalDeamonServer) {
cloudICP.dispatch.webSocket.reconnectLocalDeamonId = setInterval(function() {
if (cloudICP.dispatch.webSocket._localDeamonWs == null ) {
cloudICP.dispatch.webSocket.connectToLocalDeamon();
}
}, 5000);
}
cloudICP.reportDispatchSdkStatus({
"status": "1",
"desc": "connect to deamon thread failed."
});
};
// 监听sdkserver websocket错误事件
this._localDeamonWs.onerror = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToLocalDeamon: WebSocket error observed.")) {
console.error("[INFO][" + curTime + "] connectToLocalDeamon: WebSocket error observed.");
};
};
// 监听sdkserver websocket消息事件
this._localDeamonWs.onmessage = function(event) {
if (event.data == "this session has been downgraded") {
cloudICP.dispatch.webSocket.needRecontLocalDeamonServer = false;
var param = "{\"description\":\"end_this_link_MSP_D\", \"cmd\": 196613}";
this._localDeamonWs.send(param);
}
var data = JSON.parse(event.data);
cloudICP.dispatch.webSocket.connectToMediaServer();
cloudICP.dispatch.webSocket.connectToMediaDataServer();
if (data["rsp"] != "131074") {
setTimeout(function() {
cloudICP.util.log(0, { "logLevel": "info", "logMsg": "recv Deamon msg:" + event.data });
}, 0);
}
if (data["msgType"] == "MspServiceStartUp") {
cloudICP.userInfo["mspVersion"] = data["version"];
}
cloudICP.dispatch.event.delMSPNotify(data);
};
}
/**
* 连接本地媒体线程
*/
ICPSDK_Dispatch_WebSocket.prototype.connectToMediaServer = function() {
if (this._medisServerWs) {
return;
}
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaServer: WebSocket connection begin.")) {
console.log("[INFO][" + curTime + "] connectToMediaServer: WebSocket connection begin.");
};
if (typeof MozWebSocket != "undefined") {
this._medisServerWs = new MozWebSocket(cloudICP.getMediaServerUrl());
} else {
this._medisServerWs = new WebSocket(cloudICP.getMediaServerUrl());
}
// 监听sdkserver websocket建立事件
this._medisServerWs.onopen = function(event) {
clearInterval(cloudICP.dispatch.webSocket.reconnectMediaServiceId);
cloudICP.dispatch.webSocket.reconnectMediaServiceId = -1;
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaServer: WebSocket connection open.")) {
console.log("[INFO][" + curTime + "] connectToMediaServer: WebSocket connection open.");
};
//this._medisServerWs.send("Login");
this._medisServerWs.send("ForceLogin");
}.bind(this);
this._medisServerWs.onclose = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaServer: WebSocket connection closed.")) {
console.log("[INFO][" + curTime + "] connectToMediaServer: WebSocket connection closed.");
};
cloudICP.dispatch.webSocket._medisServerWs = null;
if (cloudICP.dispatch.webSocket.reconnectMediaServiceId == -1 && cloudICP.dispatch.webSocket
.reconnectLocalDeamonId == -1 && cloudICP.dispatch.webSocket.needRecontMediaServer) {
cloudICP.dispatch.webSocket.reconnectMediaServiceId = setInterval(function() {
if (cloudICP.dispatch.webSocket._medisServerWs == null ) {
cloudICP.dispatch.webSocket.connectToMediaServer();
}
}, 5000);
}
cloudICP.reportDispatchSdkStatus({
"status": "2",
"desc": "connect to media server failed."
});
};
// 监听sdkserver websocket错误事件
this._medisServerWs.onerror = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaServer: WebSocket error observed.")) {
console.error("[INFO][" + curTime + "] connectToMediaServer: WebSocket error observed.");
};
};
// 监听sdkserver websocket消息事件
this._medisServerWs.onmessage = function(event) {
var data = {};
if (cloudICP.util.isJsonString(event.data)) {
var curTime = cloudICP.util.getCurrentDate();
data = JSON.parse(event.data);
if (data && data["rsp"] != "131074") {
setTimeout(function() {
cloudICP.util.log(0, { "logLevel": "debug", "logMsg": "recv mediaServer msg:" + event.data });
}, 0);
}
} else {
setTimeout(function() {
console.log("recv mediaServer msg:" + event.data);
}, 0);
}
var ret = this.dealMSPEvent(event);
if (ret == true) {
return;
}
var cmd = data["rsp"] + "";
if (typeof this._mediaSdkRspFuncs[cmd] == "function") {
this._mediaSdkRspFuncs[cmd](data);
} else {
cloudICP.dispatch.event.delMSPNotify(data);
}
}.bind(this);
}
/**
* 连接本地媒体数据透传线程
*/
ICPSDK_Dispatch_WebSocket.prototype.connectToMediaDataServer = function() {
if (this._mediaDataServerWs) {
return;
}
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaDataServer: WebSocket connection begin.")) {
console.log("[INFO][" + curTime + "] connectToMediaDataServer: WebSocket connection begin.");
};
if (typeof MozWebSocket != "undefined") {
this._mediaDataServerWs = new MozWebSocket(cloudICP.getMediaDataServerUrl());
} else {
this._mediaDataServerWs = new WebSocket(cloudICP.getMediaDataServerUrl());
}
this._mediaDataServerWs.binaryType = 'arraybuffer';
// 监听透传数据 websocket建立事件
this._mediaDataServerWs.onopen = function(event) {
clearInterval(cloudICP.dispatch.webSocket.reconnectMediaDataServiceId);
cloudICP.dispatch.webSocket.reconnectMediaDataServiceId = -1;
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaDataServer: WebSocket connection open.")) {
console.log("[INFO][" + curTime + "] connectToMediaDataServer: WebSocket connection open.");
};
}.bind(this);
this._mediaDataServerWs.onclose = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaDataServer: WebSocket connection closed.")) {
console.log("[INFO][" + curTime + "] connectToMediaDataServer: WebSocket connection closed.");
};
cloudICP.dispatch.webSocket._mediaDataServerWs = null;
if (cloudICP.dispatch.webSocket.reconnectMediaDataServiceId = -1 && cloudICP.dispatch.webSocket.needRecontMediaDataServer) {
cloudICP.dispatch.webSocket.reconnectMediaDataServiceId = setInterval(function() {
if (cloudICP.dispatch.webSocket._mediaDataServerWs == null ) {
cloudICP.dispatch.webSocket.connectToMediaDataServer();
}
}, 5000);
}
cloudICP.reportDispatchSdkStatus({
"status": "2",
"desc": "connect to media data server failed."
});
};
// 监听透传数据 websocket错误事件
this._mediaDataServerWs.onerror = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToMediaDataServer: WebSocket error observed.")) {
console.error("[INFO][" + curTime + "] connectToMediaDataServer: WebSocket error observed.");
};
};
// 监听透传数据 websocket消息事件
this._mediaDataServerWs.onmessage = function(event) {
var data = {};
if (event.data instanceof ArrayBuffer) {
const decoder = new TextDecoder("utf-8");
const textData = decoder.decode(event.data);
cloudICP.util.parseMediaData(event.data, data);
}
cloudICP.dispatch.event.delMSPNotify(data);
}.bind(this);
}
/**
* 发送消息给本地媒体
*/
ICPSDK_Dispatch_WebSocket.prototype.sendDataToMediaSDK = function(data, isLog) {
var sendStr;
if (isLog == true) {
setTimeout(function() {
if (undefined != data["param"] && undefined != data["param"]["mediaInfo"] && undefined != data["param"]["mediaInfo"]["audioBase64"]) {
} else {
cloudICP.util.log(0, { "logLevel": "debug", "logMsg": "send mediaServer msg:" + JSON.stringify(data) });
}
}, 0);
}
if (undefined != data["cmd"]) {
sendStr = JSON.stringify(data);
} else {
sendStr = "" + data;
}
if (!this._medisServerWs) {
return;
}
this._medisServerWs.send(sendStr);
}
/**
* 发送消息给本地媒体
*/
ICPSDK_Dispatch_WebSocket.prototype.sendDataToDeamonSDK = function(data, isLog) {
if (isLog == true) {
setTimeout(function() {
cloudICP.util.log(0, { "logLevel": "info", "logMsg": "send Deamon msg:" + JSON.stringify(data) });
}, 0);
}
if (!this._localDeamonWs) {
return;
}
if (undefined != data["cmd"]) {
var sendStr = JSON.stringify(data);
this._localDeamonWs.send(sendStr);
} else {
this._localDeamonWs.send(data);
}
}
/**
* 获取ip
* @param param {
* callback :
* }
*/
ICPSDK_Dispatch_WebSocket.prototype.getLocalIp = function(param) {
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
var msg = {
"description": "msp_get_local_ip",
"cmd": 0x20001,
"param": {
"server": cloudICP.config["serverAddress"],
"serverDomain": cloudICP.config["serverDomain"]
}
};
if (undefined == param) {
cloudICP.util.log(undefined, { "logLevel": "warn", "logMsg": "getLocalIp: param is invalid."});
}
if (undefined == param["callback"] || typeof param["callback"] != "function") {
cloudICP.util.log(undefined, { "logLevel": "warn", "logMsg": "getLocalIp: callback is not a function."});
}
if ((undefined != param) && (undefined != param["callback"]) && (typeof param["callback"] == "function")) {
this._mediaSdkRspFuncs[msg.cmd + ""] = param["callback"];
} else {
this._mediaSdkRspFuncs[msg.cmd + ""] = this.getLocalIpCallBack;
}
cloudICP.util.log(undefined, { "logLevel": "info", "logMsg": "send getLocalIp."});
this.sendDataToMediaSDK(msg, true);
}
/**
* 修改mdc ip
* @param param {
* callback :
* }
*/
ICPSDK_Dispatch_WebSocket.prototype.ModifyMdcIp = function(param) {
cloudICP.util.LogInputParam(param);
var tabPageId = param.tabPageId;
if (param["value"] != undefined) {
param = param.value;
}
if (undefined == param) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ModifyMdcIp: mdcip is null"
});
return;
}
if (!cloudICP.util.checkIp(param["mdcip"])) {
cloudICP.util.log(tabPageId, {
"logLevel": "error",
"logMsg": "ModifyMdcIp: mdcip is invalid"
});
return;
}
var msg = {
"description": "modify_mdcip",
"cmd": 0x20008,
"param": {
"mdcip": param["mdcip"],
"serverDomain": cloudICP.config["serverDomain"]
},
"reqId": tabPageId
};
this._mediaSdkRspFuncs[msg.cmd + ""] = this.getModifyMdcip.bind(this);
this.sendDataToMediaSDK(msg, true);
}
/**
* 获取摄像头信息
* @param param {
* callback :
* }
*/
ICPSDK_Dispatch_WebSocket.prototype.getCameraInfo = function(param) {
var msg = {
"description": "msp_get_video_support",
"cmd": 0x20007
};
this._mediaSdkRspFuncs[msg.cmd + ""] = this.getCameraInfoCallBack;
this.sendDataToMediaSDK(msg, true);
}
/**
* 处理获取IP的结果
*/
ICPSDK_Dispatch_WebSocket.prototype.getCameraInfoCallBack = function(data) {
var reqId = 0;
if (0 == data["result"]) {
if (data["support"] == 0) {
data["support"] = 127;
}
cloudICP.config["cameraInfo"] = data["support"];
if (cloudICP.config["cameraInfo"] && cloudICP.config["localIP"]) {
cloudICP.reportDispatchSdkStatus({
"status": "0",
"desc": "get localip and cameraInfo success.",
"mdcip": cloudICP.config["mdcip"]
});
}
if ("begin" == cloudICP.config["installMspStatus"] || true == data["msp_first_use"]) { // 提示MSP刚安装好,首次使用
var retEvent = {
"eventName": "OnInstallMspEvent",
"status": "end"
}
delete cloudICP.config.installMspStatus;
cloudICP.dispatch.event.EVENT_LIST["MSPNotify"]["OnInstallMspEvent"].event = retEvent;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["MSPNotify"]["OnInstallMspEvent"]);
cloudICP.dispatch.webSocket.ModifyMdcIp({ mdcip: cloudICP.config["mdcip"],callback: cloudICP.dispatch.webSocket.getModifyMdcip });
}
if (true == data["msp_first_use"]) {// 刷新MSP状态,不再是首次使用
var updateMspUseStatus = "{\"description\":\"msp_use_status_update\", \"cmd\": 131085}".format();
cloudICP.dispatch.webSocket.sendDataToMediaSDK(updateMspUseStatus, true);
}
cloudICP.dispatch.webSocket.getLocalIp({
callback: cloudICP.dispatch.webSocket.getLocalIpCallBack
});
} else {
cloudICP.reportDispatchSdkStatus({
"status": "4",
"desc": "get cameraInfo failed !"
});
}
}
ICPSDK_Dispatch_WebSocket.prototype.getLocalIpCallBack = function(data) {
var reqId = data.reqId;
reqId = 0;
if (0 == data["result"]) {
cloudICP.config["localIP"] = data["localIP"];
cloudICP.config["mdcip"] = data["mdcip"];
if (cloudICP.config["mspVersion"] != data["mspVersion"]) {
var event = {};
event["eventName"] = "OnUpdateMsp";
event["moduleType"] = "1";
event["mspVersion"] = data["mspVersion"];
event["desc"] = "msp版本(" + data["mspVersion"] + ")与jssdk版本(" + cloudICP.config["mspVersion"] +
")不同,请安装对应版本msp";
event["downloadUrl"] = "http://" + cloudICP.config.serverDomain + ":8009/mspversion/" + cloudICP.config.mspVersion + "/eSDK_ICP_MSP.zip";
cloudICP.dispatch.event.EVENT_LIST["MSPNotify"]["OnUpdateMsp"].event = event;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["MSPNotify"]["OnUpdateMsp"]);
try {
if (undefined != typeof(document)) {
var messageElement = document.getElementById('open-msp-result-message');
if (messageElement) {
var strUrl = "http://" + cloudICP.config.serverDomain + ":8009/mspversion/" + cloudICP.config.mspVersion + "/eSDK_ICP_MSP.zip";
var strVersion = "MSP_V" + cloudICP.config.mspVersion + ".zip";
messageElement.innerHTML = '检测结果:'
+ ' MSP 插件已运行安装版本:'
+ 'MSP_V' + data["mspVersion"] + '.zip'
+ ',目标版本下载链接: '
+ '' + strVersion + '';
}
}
} catch(e) {}
}
cloudICP.util.log(undefined, { "logLevel": "info", "logMsg": "{\"localIP\":\"" + data["localIP"] + "\", mdcip:\"" + data["mdcip"] +
"\", mspVersion:\"" + data["mspVersion"] + "\"}" });
// $('#msp-version').html("[mspVersion:" + cloudICP.config["mspVersion"] + "]");
if (cloudICP.config["cameraInfo"] && cloudICP.config["localIP"]) {
cloudICP.reportDispatchSdkStatus({
"status": "0",
"desc": "get localip and cameraInfo success."
});
}
} else {
cloudICP.reportDispatchSdkStatus({
"status": "3",
"desc": "get localIP failed."
});
}
}
/**
* connectToSDKServer()
*/
ICPSDK_Dispatch_WebSocket.prototype.connectToSDKServer = function() {
if (this._sdkServerWs) {
this._sdkServerWs.close();
this._sdkServerWs = null;
}
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToSDKServer: WebSocket connection begin.")) {
console.log("[INFO][" + curTime + "] connectToSDKServer: WebSocket connection begin.");
};
if (typeof MozWebSocket != "undefined") {
this._sdkServerWs = new MozWebSocket(cloudICP.getSdkServerWssUrl());
} else {
this._sdkServerWs = new WebSocket(cloudICP.getSdkServerWssUrl());
}
// 监听sdkserver websocket建立事件
this._sdkServerWs.onopen = function(event) {
var curTime = cloudICP.util.getCurrentDate();
var request = {
cmd: 'registerEvents',
isdn: cloudICP.userInfo.isdn,
session: cloudICP.userInfo.session
}
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToSDKServer: WebSocket connection opened.")) {
console.log("[INFO][" + curTime + "] connectToSDKServer: WebSocket connection opened.");
};
this.sendAuthToSDKServer(request);
}.bind(this);
this._sdkServerWs.onclose = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToSDKServer: WebSocket connection closed.")) {
console.log("[INFO][" + curTime + "] connectToSDKServer: WebSocket connection closed.");
};
};
// 监听sdkserver websocket错误事件
this._sdkServerWs.onerror = function(event) {
var curTime = cloudICP.util.getCurrentDate();
if (!sendMsg2Page(0, messageType.log, "[INFO][" + curTime + "] connectToSDKServer: WebSocket error observed.")) {
console.error("[INFO][" + curTime + "] connectToSDKServer: WebSocket error observed.");
};
};
// 监听sdkserver websocket消息事件
this._sdkServerWs.onmessage = function(event) {
setTimeout(function() {
cloudICP.util.log(0, { "logLevel": "info", "logMsg": "recv sdkServer msg:" + event.data });
}, 0);
this.dealMessage(event.data);
}.bind(this);
}
/**
* handle the websocket event
*/
ICPSDK_Dispatch_WebSocket.prototype.dealMessage = function(event) {
var jsonObject = JSON.parse(event);
var cmd = jsonObject["cmd"];
var rid = jsonObject["rid"];
if (undefined == cmd) {
cloudICP.util.log(undefined, { "logLevel": "warn", "logMsg": "dealMessage: cmd is invalid." });
return;
}
if (undefined != jsonObject["rid"]) {
delete jsonObject.rid;
}
if (undefined != jsonObject["seq"]) {
delete jsonObject.seq;
}
delete jsonObject.cmd;
switch (cmd) {
case "voiceNotify": //语音状态通知处理
cloudICP.dispatch.event.delVoiceNotify(jsonObject);
break;
case "videoNotify": //视频状态通知处理
cloudICP.dispatch.event.delVideoNotify(jsonObject);
case "groupCallNotify": //组呼状态通知处理
cloudICP.dispatch.event.delGroupCallNotify(jsonObject);
break;
case "commonNotify": //群组更新通知处理
cloudICP.dispatch.event.delCommonNotify(jsonObject);
break;
case "msNotify": //短彩信更新通知处理
cloudICP.dispatch.event.delMsNotify(jsonObject);
break;
case "gisNotify": //gis状态通知处理
cloudICP.dispatch.event.delGisNotify(jsonObject);
break;
case "resourceNotify": //资源状态通知处理
jsonObject["rid"] = rid;
cloudICP.dispatch.event.delResourceNotify(jsonObject);
break;
case "moduleNotify": //模块状态通知处理
cloudICP.dispatch.event.delModuleNotify(jsonObject);
break;
case "phoneConfNotify": //音视频会议通知
break;
case "200006": //组呼音频通知
cloudICP.dispatch.event.delResourceNotify(JSON.parse(event));
break;
case "registerEvents": //websocket连接建立成功通知
cloudICP.loginFlag = true;
break;
case "broadcastInfoEvents": //处理三方广播通知消息
cloudICP.dispatch.event.delBroadcastInfoNotify(jsonObject);
break;
default:
cloudICP.util.log(undefined, { "logLevel": "warn", "logMsg": "dealMessage: unknow event. The event is " + JSON.stringify(event) });
}
}
/**
* send() send request by websocket
* @param {Object} req request
*/
ICPSDK_Dispatch_WebSocket.prototype.sendAuthToSDKServer = function(req) {
this._sdkServerWs.send(JSON.stringify(req));
};
ICPSDK_Dispatch_WebSocket.prototype.dealMSPEvent = function(event) {
var reqId = event.reqId;
reqId = 0;
if (event != undefined && event.data != undefined) {
if (event.data == "LoginSuccessful") {
var mspStatusEvent = {};
mspStatusEvent["eventName"] = "OnMspInstallRunStatus";
mspStatusEvent["moduleType"] = "1";
mspStatusEvent["status"] = 4;//1: 未安装 2:已安装 3:未运行 4:运行中
cloudICP.dispatch.event.EVENT_LIST["MSPNotify"]["OnMspInstallRunStatus"].event = mspStatusEvent;
sendEvent2Page(0, cloudICP.dispatch.event.EVENT_LIST["MSPNotify"]["OnMspInstallRunStatus"]);
if (true == cloudICP.config["hasExeCheckMsp"]) {
cloudICP.dispatch.webSocket.ModifyMdcIp({ mdcip: cloudICP.config.setMDCIP, callback: cloudICP.dispatch.webSocket.getModifyMdcip });
}
this.getCameraInfo();
cloudICP.dispatch.webSocket.isMSPConflicted = false;
return true;
} else if (event.data == "LoginFailed") {
var event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "4";
cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
cloudICP.dispatch.webSocket.isMSPConflicted = true;
delete cloudICP.config["localIP"];
delete cloudICP.config["cameraInfo"];
return true;
} else if (event.data == "this session has been downgraded") {
cloudICP.dispatch.webSocket.needRecontMediaServer = false;
cloudICP.dispatch.webSocket.needRecontMediaDataServer = false;
var param = "end_this_link_MSP_S";
this._medisServerWs.send(param);
var event = {};
event["eventName"] = "OnDisConnection";
event["moduleType"] = "4";
cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"].event = event;
sendEvent2Page(reqId, cloudICP.dispatch.event.EVENT_LIST["ModuleNotify"]["OnDisConnection"]);
cloudICP.dispatch.webSocket.isMSPConflicted = true;
delete cloudICP.config["localIP"];
delete cloudICP.config["cameraInfo"];
cloudICP.dispatch.auth.unifiedLogout({
"callback": function(data) {
// Do nothing
}
});
return true;
} else if (event.data == "this session has been downgraded, cannot make any process") {
delete cloudICP.config["localIP"];
delete cloudICP.config["cameraInfo"];
return true;
}
return false;
} else {
return false;
}
};
// 消息类型
var messageType = {
lifecycle: "lifecycle",
log: "log",
request: "request",
response: "response",
event: "event",
}
var mainPageId = undefined;
function ICPSDK_Util() {
this.callStatusMgr = new CALL_STATUS_MGR();
this.sensitiveInfo = new SENSITIVE_INFOS();
};
ICPSDK_Util.prototype.strJsonParse = function(strJson) {
try {
var a = JSON.parse(strJson, function(k, v) {
if (null != v && v.indexOf && v.indexOf('function') > -1) {
return eval("(function(){return " + v + " })()")
} else if (null != v && v.indexOf && v.indexOf('=>') > -1) { // 支持箭头函数的转换
return eval("(function(){return " + v + " })()");
}
return v;
});
return a;
} catch (e) {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "strJsonParse error: " + strJson });
return null;
}
}
ICPSDK_Util.prototype.copyJsonObject = function(jsonObject) {
try {
var strJson = JSON.stringify(jsonObject, function(key, val) {
if (typeof val === 'function') {
return val + '';
}
return val;
});
var a = JSON.parse(strJson, function(k, v) {
if (null != v && v.indexOf && v.indexOf('function') > -1) {
return eval("(function(){return " + v + " })()")
} else if (null != v && v.indexOf && v.indexOf('=>') > -1) { // 支持箭头函数的转换
return eval("(function(){return " + v + " })()");
}
return v;
});
return a;
} catch (e) {
cloudICP.util.log(0, { "logLevel": "error", "logMsg": "copyJsonObject json failure !" });
return null;
}
}
/**
* logParam is json object
* {
* "logLevel" : debug|info|warn|error
* "logMsg" : message
* }
*/
ICPSDK_Util.prototype.log = function(tabPageId, logParam) {
var date = cloudICP.util.getCurrentDate(); //new Date().format("yyyy-MM-dd hh:mm:ss");
logParam.date = date;
// 多窗口版本WorkerJs需要将日志发送给Demo页签
if (typeof tabPageId != 'undefined' || tabPageId != undefined) {
sendMsg2Page(tabPageId, messageType.log, JSON.stringify(logParam));
}
if (logParam["logLevel"] == "debug") {
logParam["logLevelNum"] = 0;
} else if (logParam["logLevel"] == "info") {
logParam["logLevelNum"] = 1;
} else if (logParam["logLevel"] == "warn") {
logParam["logLevelNum"] = 2;
} else if (logParam["logLevel"] == "error") {
logParam["logLevelNum"] = 3;
} else {
logParam["logLevelNum"] = 0;
}
if (cloudICP.config.debugMode == "true") {
// F12控制台 日志打印
switch (logParam["logLevelNum"]) {
case 0:
console.debug("[DEBUG][" + date + "] " + logParam["logMsg"]);
break;
case 1:
console.info("[INFO][" + date + "] " + logParam["logMsg"]);
break;
case 2:
console.warn("[WARN][" + date + "] " + logParam["logMsg"]);
break;
case 3:
console.error("[ERROR][" + date + "] " + logParam["logMsg"]);
break;
default:
console.debug("[DEFAULT][" + date + "] " + logParam["logMsg"]);
break;
}
}
logParam.logType = "HuaweiICPSDK's Log";
cloudICP.util.sendLogOut(logParam);
};
/**
* check str is or not json object strings
* @param str
*/
ICPSDK_Util.prototype.isJsonString = function(str) {
try {
if (typeof JSON.parse(str) == "object") {
return true;
}
} catch(e) {}
return false;
}
/**
* check the string param is number
* @param param
*/
ICPSDK_Util.prototype.isNumber = function(param) {
if (undefined == param || "" == param.toString()) {
return false;
}
var regex = /^[1-9]+[0-9]*$/;
if (regex.test(param) || /^0$/.test(param)) {
return true;
}
return false;
}
/**
* check the windowinfo param is valid
* @param param
*/
ICPSDK_Util.prototype.checkWindowParam = function(param) {
if (false == cloudICP.util.isNumber(param)) {
return false;
}
var iValue = parseInt(param);
if (0 > iValue || 0x7FFFFFFF < iValue) {
return false;
}
return true;
}
/**
* check the struiing param is letter
* @param param
*/
ICPSDK_Util.prototype.isLetter = function(param) {
if (undefined == param) {
return false;
}
var regex = /^[A-Za-z]+[A-Za-z]*$/
if (regex.test(param)) {
return true;
}
return false;
}
/**
* check the string is one of str in array
* @param array
*/
ICPSDK_Util.prototype.isStrInArray = function(str, array) {
for (var type = 0; type < array.length; type++) {
if (array[type] === str) {
return true;
}
}
return false;
}
/**
* check the string is legal: number or letter
* @param param
*/
ICPSDK_Util.prototype.isStrLegal = function(param) {
if (undefined == param) {
return false;
}
var regex = /^[A-Za-z0-9]+[A-Za-z0-9]*$/
if (regex.test(param)) {
return true;
}
return false;
}
/**
* check the string param is number(int or float)
* @param param
*/
ICPSDK_Util.prototype.checkRate = function(param) {
if (undefined == param) {
return false;
}
if (isNaN(parseInt(param)) || isNaN(parseFloat(param))) {
return false;
}
return true;
}
/**
* check the string param is bool
* @param param
*/
ICPSDK_Util.prototype.isBool = function(param) {
if (undefined == param) {
return false;
}
if (param == "true" || param == "false") {
return true;
}
return false;
}
/**
* check isdn is valid
* @param isdn
*/
ICPSDK_Util.prototype.checkIsdn = function(isdn) {
if (isdn && isdn.length <= 19) {
return true;
}
return false;
}
/**
* check file type is right
* @param {*} isdn
*/
ICPSDK_Util.prototype.checkFileType=function(filePath, type){
if(!filePath){
return false;
}
var suffer = filePath.substring(filePath.lastIndexOf(".")+1);
if(!suffer || suffer != type){
return false;
}
return true;
}
ICPSDK_Util.prototype.checkCallNumber = function(isdn) {
if (isdn && isdn.length <= 13 && this.isNumber(isdn)) {
return true;
}
return false;
}
ICPSDK_Util.prototype.checkGroupID = function(grpid) {
if (grpid && grpid.length <= 13 && this.isNumber(grpid)) {
return true;
}
return false;
}
/**
* check cid is valid
* @param cid
*/
ICPSDK_Util.prototype.checkCid = function(cid) {
if (cid && cid.length <= 32 && this.isNumber(cid) && (parseInt(cid, 10) <= 2147483647)) {
return true;
}
return false;
}
/**
* getUserWindowId
* @param NULL
*/
ICPSDK_Util.prototype.getUserWindowId = function() {
var userWindowId = 2000000001;
var bIsContinue = false;
for (; userWindowId <= 2000001000; userWindowId++) {
if (undefined == cloudICP.util.callStatusMgr.videoMediaInfoBuf[userWindowId.toString()]) {
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.windowInfos[key]["userWindowId"] && cloudICP
.util.callStatusMgr.windowInfos[key]["userWindowId"] == userWindowId) {
bIsContinue = true;
cloudICP.util.log(0, {
"logLevel": "warn",
"logMsg": "[getUserWindowId] userWindowId(" + userWindowId + ") is release, but server not return over event."
});
}
});
if (false == bIsContinue) {
return userWindowId;
}
bIsContinue = false;
}
}
return userWindowId;
}
/**
* get monitor repeats cid
* @param NULL
*/
ICPSDK_Util.prototype.getMonitorRepeatsCid = function() {
var monitorRepeatsCid = 2000001001;
for (; monitorRepeatsCid <= 2000002000; monitorRepeatsCid++) {
var bIsContinue = true;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (key == monitorRepeatsCid) {
bIsContinue = false;
return;
}
});
if (bIsContinue == true) {
break;
}
}
return monitorRepeatsCid;
}
/**
* check userWindowId is valid
* @param cid
*/
ICPSDK_Util.prototype.checkUserWindowId = function(userWindowId, type) {
var iResult = 0;
if (userWindowId && this.isNumber(userWindowId) && (parseInt(userWindowId, 10) <= 2000001000) && (parseInt(
userWindowId, 10) >= 2000000001)) {
iResult = 1;
var bUserWindowIdIsUsed = false;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["windowId"] &&
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["windowId"] == userWindowId) {
bUserWindowIdIsUsed = true;
}
});
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.windowInfos[key]["userWindowId"] && cloudICP.util
.callStatusMgr.windowInfos[key]["userWindowId"] == userWindowId) {
iResult = 2;
}
});
if ("create" == type && true == bUserWindowIdIsUsed) {
iResult = 2;
} else if ("use" == type && false == bUserWindowIdIsUsed) {
iResult = 2;
} else if ("destroy" == type) {
return iResult;
}
}
return iResult;
}
/**
* check User is Monitor
* @param caller callee
*/
ICPSDK_Util.prototype.checkUserIsMonitor = function (caller, callee, jsonMediaValue) {
var iResult = false;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function (key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] && caller ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] &&
undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"] && callee ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"]) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"][
"repeatsMonitor"
]) {
jsonMediaValue["value"] = JSON.parse(JSON.stringify(cloudICP.util.callStatusMgr
.videoMediaInfoBuf[key]["value"]));
iResult = false;
return;
}
iResult = true;
jsonMediaValue["value"] = JSON.parse(JSON.stringify(cloudICP.util.callStatusMgr
.videoMediaInfoBuf[key]["value"])); // 复制对象
}
});
if ("" != jsonMediaValue["value"]) {
return iResult;
}
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function (key) {
if (key == callee) {
iResult = true;
}
});
return iResult;
}
/**
* 是否创建复制流
* @param caller callee
*/
ICPSDK_Util.prototype.createNewCopyMonitor = function (caller, callee, jsonMediaValue) {
var iResult = false;
var activeStream = 0; // 判断创建时候的标记数,当前规格最大支持三路
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function (key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] && caller ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] &&
undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"] && callee ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"]) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["repeatsMonitor"]) {
activeStream = activeStream + 1;
} else {
// 创建流判断是否以释放 未释放时标记累加
if (undefined == cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["releaseTag"] || false ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["releaseTag"]) {
activeStream = activeStream + 1;
}
// 复制主叫流信息
jsonMediaValue["value"] = JSON.parse(JSON.stringify(cloudICP.util.callStatusMgr
.videoMediaInfoBuf[key]["value"]));
}
}
});
if (activeStream < 3 && activeStream > 0) {
iResult = true;
}
if ("" != jsonMediaValue["value"]) {
return iResult;
}
Object.keys(cloudICP.util.callStatusMgr.windowInfos).forEach(function (key) {
if (key == callee) {
iResult = true;
}
});
return iResult;
}
/**
* 更新主监控界面离开标志
* @param caller callee
*/
ICPSDK_Util.prototype.updateCopyMonitorReleaseTag = function (caller, callee) {
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function (key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] && caller ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] &&
undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"] && callee ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"]) {
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["releaseTag"] = true;
}
});
}
/**
* 获取复制窗口结束标志
* @param caller callee
*/
ICPSDK_Util.prototype.getCopyMonitorReleaseTag = function (caller, callee) {
var recTag = false;
var activeStream = 0;
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function (key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] && caller ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] &&
undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"] && callee ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"]) {
// 创建流存在
if (undefined == cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["releaseTag"] ||
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["releaseTag"] == false) {
activeStream = 0;
return;
}
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["repeatsMonitor"]) {
activeStream = activeStream + 1;
}
}
});
if (activeStream == 1) { // 该监控有且仅有一路时候释放
recTag = true;
}
return recTag;
}
/**
* clean repeats monitor Cache data
* @param caller callee
*/
ICPSDK_Util.prototype.CleanThisRepeatsMonitor = function(caller, callee) {
var strCids = [];
Object.keys(cloudICP.util.callStatusMgr.videoMediaInfoBuf).forEach(function(key) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] && caller ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["caller"] &&
undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"] && callee ==
cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"]["callee"]) {
if (undefined != cloudICP.util.callStatusMgr.videoMediaInfoBuf[key]["value"][
"repeatsMonitor"
]) {
strCids.push(key);
}
}
});
for (let i = 0; i < strCids.length; i++) {
var tCid = strCids[i];
if (undefined != tCid) {
delete cloudICP.util.callStatusMgr.videoMediaInfoBuf[tCid];
}
}
}
/**
* check ip is valid
* @param ip
*/
ICPSDK_Util.prototype.checkIp = function(ip) {
if (undefined == ip) {
return false;
}
var regex =
/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
if (regex.test(ip)) {
return true;
}
if (/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]$/.test(ip)) {
return true;
}
return false;
}
/**
* check port is valid
* @param port
*/
ICPSDK_Util.prototype.checkPort = function(port) {
if (undefined == port) {
return false;
}
var regex = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
if (regex.test(port)) {
return true;
}
return false;
}
/**
* check vpnid is valid
* @param {int} vpnid
*/
ICPSDK_Util.prototype.checkVpnid = function(vpnid) {
if (undefined == vpnid || vpnid == null) {
return false;
}
if (typeof vpnid != "number") {
return false;
}
if (vpnid < -1 || vpnid >= 65535) {
return false;
}
return true;
}
/**
* check the alias of group
*/
ICPSDK_Util.prototype.checkAliasOfGroup = function(alias) {
if (undefined == alias) {
return false;
}
if ("" == alias.trim()) {
return false;
}
var realLength = 0;
var encodeStr = encodeURI(alias);
var len = encodeStr.length;
var charCode = -1;
for (var i = 0; i < len; i++) {
charCode = encodeStr.charCodeAt(i);
realLength += 3;
if (charCode == 37) {
i += 2;
}
}
if (realLength > (3 * 32)) {
return false;
}
//不能为空,字符串最大长度为32个字节,不能用中英文逗号、单引号、双引号、分号、/、\符号、&符号、<符号、>符号,不能有连续的空格及连续的百分号,3个字节对应1个中文字。
if (!(/[,\/\&\'\"\;<>\\\uff1b\u2019\u2018\uff0c\u201d\u201c\u3008\u3009\uff1e\uff1c]/.test(alias)) && !(/\s{2}/
.test(alias)) && !(/\%{2}/.test(alias))) {
return true;
}
return false;
}
/**
* check showToolbar is valid
* @param {int} buttonIDs
*/
ICPSDK_Util.prototype.checkshowToolbar = function(showToolbar) {
if (undefined == showToolbar || showToolbar == null) {
return false;
}
if (typeof showToolbar != "number") {
return false;
}
if (showToolbar < 0 || showToolbar > 1) {
return false;
}
return true;
}
/**
* check buttonIDs is valid
* @param {int} buttonIDs
*/
ICPSDK_Util.prototype.checkbuttonIDs = function(buttonIDs) {
if (undefined == buttonIDs || buttonIDs == null) {
return false;
}
if (typeof buttonIDs != "number") {
return false;
}
if (buttonIDs < 0) {
return false;
}
return true;
}
/**
* check mode is valid
* @param {string} mode
*/
ICPSDK_Util.prototype.checkmode = function(mode) {
if (undefined == mode || mode == null) {
return false;
}
if (typeof mode != "string") {
return false;
}
let modes = new Set(["window", "wssflow", "plugins"])
if (!modes.has(mode)) {
return false;
}
return true;
}
/**
* check the user name
*/
ICPSDK_Util.prototype.checkUserName = function(user) {
if (undefined == user) {
return false;
}
if (user == "") {
return false;
}
var clength = 0;
for (var index = 0; index < user.length; index++) {
if (encodeURI(user[index]).length > 1) {
clength += 3;
} else {
clength += 1;
}
}
if (clength >= 33) {
return false;
}
if (!(/[,\/\&\'\"\;<>\\\uff1b\u2019\u2018\uff0c\u201d\u201c\u3008\u3009\uff1e\uff1c]/.test(user)) && !(/\s{2}/
.test(user)) && !(/\%{2}/.test(user))) {
return true;
}
return false;
}
/**
* check IdList is valid
* @param string IdList
*/
ICPSDK_Util.prototype.checkIdList = function(IdList) {
if (undefined == IdList || "" == IdList) {
return false;
}
var regex = /[0-9]/;
for (var i = 0; i < IdList.length; i++) {
let pChar = IdList.charAt(i);
if (!regex.test(pChar) && ';' != pChar) {
return false;
}
}
return true;
}
/**
* get current date "yyyy-mm-dd HH:MM:SS.mmm"
* @param {}
*/
ICPSDK_Util.prototype.getCurrentDate = function() {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
var day = date.getDate();
day = day < 10 ? "0" + day : day;
var hour = date.getHours();
hour = hour < 10 ? "0" + hour : hour;
var minute = date.getMinutes();
minute = minute < 10 ? "0" + minute : minute;
var second = date.getSeconds();
second = second < 10 ? "0" + second : second;
var msecond = date.getMilliseconds();
msecond = msecond < 10 ? "0" + msecond : msecond;
var current = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second + "." + msecond;
return current;
}
/**
* delete cid of wssflow mode
* @param string cidStr
*/
ICPSDK_Util.prototype.deleteWssflowModeCid = function (cidStr) {
// 删除内嵌窗口cid
var wssflowModeCids = cloudICP.util.callStatusMgr.wssflowModeCids
if (undefined != wssflowModeCids[cidStr] && "wssflow" == wssflowModeCids[cidStr]) {
delete cloudICP.util.callStatusMgr.wssflowModeCids[cidStr];
}
return;
}
Date.prototype.format = function(fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k = 0; k < o.length; k++) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k])
.length)));
}
}
return fmt;
};
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
ICPSDK_Util.prototype.generateUUID = function() {
return new Date().setMilliseconds(0).toString();
};
/**
* resolve fmt
* @param {string} fmt
*/
ICPSDK_Util.prototype.resolveFmt = function(fmt) {
var ret = "720P"
var fmtNum = parseInt(fmt);
if (((fmtNum >> 4 & 1) == 1) && ((cloudICP.config.cameraInfo >> 4 & 1) == 1)) {
ret = "1080P";
} else if (((fmtNum >> 3 & 1) == 1) && ((cloudICP.config.cameraInfo >> 3 & 1) == 1)) {
ret = "720P";
} else if (((fmtNum >> 2 & 1) == 1) && ((cloudICP.config.cameraInfo >> 2 & 1) == 1)) {
ret = "D1";
} else if (((fmtNum >> 1 & 1) == 1) && ((cloudICP.config.cameraInfo >> 1 & 1) == 1)) {
ret = "CIF";
} else if (((fmtNum & 1) == 1) && ((cloudICP.config.cameraInfo & 1) == 1)) {
ret = "QCIF";
}
return ret;
};
/**
* resolve fmt
* @param {string} fmt
*/
ICPSDK_Util.prototype.checkFmt = function(fmt) {
var fmts = {
"QCIF": 0,
"CIF": 1,
"D1": 2,
"720P": 3,
"1080P": 4,
"2K": 5,
"4K": 6
};
if ((cloudICP.config.cameraInfo >> fmts[fmt] & 1) == 1) {
return true;
} else {
false;
}
};
/**
* includes implement
* @param {string} fmt
*/
ICPSDK_Util.prototype.includes = function(arr, element) {
for (var index = 0; index < arr.length; index++) {
if (arr[index] == element) {
return true;
}
}
return false;
};
/**
* name: getDefaultFmt
* function: get default fmt from camera capabilities.
*/
ICPSDK_Util.prototype.getDefaultFmt = function() {
var fmtsValueJson = {
"1080P": 4,
"720P": 3,
"D1": 2,
"CIF": 1,
"QCIF": 0
};
var fmtValue = "1080P";
var fmts = ["1080P", "720P", "D1", "CIF", "QCIF"];
for (let index = 0; index < fmts.length; index++) {
var fmt = fmts[index];
if ((cloudICP.config.cameraInfo >> fmtsValueJson[fmt] & 1) == 1) {
return fmts[index];
}
}
return fmtValue;
};
/**
* save log message to msp log files
* @param {string} fmt
*/
ICPSDK_Util.prototype.sendLogOut = function(msg) {
if (cloudICP.dispatch.webSocket._medisServerWs &&
cloudICP.dispatch.webSocket._medisServerWs.readyState == cloudICP.dispatch.webSocket._medisServerWs.OPEN
) {
var param = {
"description": "msp_client_log_out",
"cmd": 131074,
"param": {
"logLevel": msg.logLevelNum,
"logMsg": msg.logMsg,
}
}
var logStr = cloudICP.util.sensitiveInfo.moveSensitiveInfo(JSON.stringify(param));
cloudICP.dispatch.webSocket.sendDataToMediaSDK(logStr, false);
}
};
ICPSDK_Util.prototype.findDuplicates = function(arr) {
return arr.filter(function(item, index) {
return arr.indexOf(item) != index
})
};
/**
* save log message to msp log files
* @param {string} fmt
*/
ICPSDK_Util.prototype.checkConfId = function(param) {
//SMC3.0开始ConfId是字符串,不再校验
if (!param || "" == param || undefined == param) {
return false;
}
return true;
if (typeof param != "string") {
return false;
}
if (!cloudICP.util.isNumber(param)) {
return false;
}
if (parseInt(param) < 0) {
return false;
}
if (param.length > cloudICP.dispatch.conf.MAX_CONF_ID.length) {
return false;
} else if (param.length < cloudICP.dispatch.conf.MAX_CONF_ID.length) {
return true;
} else {
var index = 0;
var i;
var j;
while (index < param.length) {
i = param.charAt(index);
j = cloudICP.dispatch.conf.MAX_CONF_ID.charAt(index);
if (parseInt(i) > parseInt(j)) {
return false;
} else if (parseInt(i) < parseInt(j)) {
return true;
}
index += 1
}
return true;
}
return true;
};
/*
* print jssdk interface input param.
* @param {}
*/
ICPSDK_Util.prototype.LogInputParam = function(param) {
// 打印接口入参
var tabPageId = param.tabPageId;
var curTime = cloudICP.util.getCurrentDate();
var methodName = null;
var moduleName = null;
var tmpStr;
try {
throw new Error();
} catch (n) {
tmpStr = n.stack.split("\n");
}
for (var index = 0; index < tmpStr.length; index++) {
if (tmpStr[index].indexOf("ICPSDK_Dispatch") != -1) {
methodName = tmpStr[index].split(/\W/)[6];
moduleName = tmpStr[index].split(/\W/)[5];
break;
}
}
var logStr = cloudICP.util.sensitiveInfo.moveSensitiveInfo(JSON.stringify(param));
cloudICP.util.log(tabPageId, { "logLevel": "info", "logMsg": "Calling [ " + moduleName + "." + methodName + " ], input param: " + logStr + " ]" });
return true;
};
function base64UrlToStandard(base64) {
return base64.replace(/-/g, '+').replace(/_/g, '/');
}
function addBase64Padding(base64) {
return base64.padEnd(Math.ceil(base64.length / 4) * 4, '=');
}
function decodeBase64(base64) {
base64 = base64UrlToStandard(base64); // 替换 URL 特殊字符
base64 = addBase64Padding(base64); // 补全 `=`
return atob(base64); // 使用 atob 解码
}
function CALL_STATUS_MGR() {
var _mthis = this;
// 通话状态码
this.IDLE = -1;
this.NEW = 0;
this.RINGING = 1;
this.CONNECTING = 2;
this.HOLD = 3;
this.RELEASE = 4;
// 通话类型 TODO
this.VOICE = 0;
this.VIDEO = 1;
this.HALFVOICE = 2;
this.DISCREET = 3;
this.MONITOR = 4;
this.VIDEODISPATCH = 5;
this.AMBIENCE = 6;
this.VOICECONF = 7;
this.VIDEOCONF = 8;
this.GROUP = 9;
//
this.callTypeStr = [
"voice", // 0 voice
"video", // 1 video
"halfdial", // 2 halfvoice
"discreenlisten", // 3 discreet
"monitor", // 4 monitor
"dispatch", // 5 videodispatch
"ambience", // 6 ambience
"voiceconf", // 7 voiceconf
"videoconf", // 8 videoconf
"group", // 8 group
];
// 当前存在的各个通话的数量
this.numberOfCall = [
0, // voice
0, // video
0, // halfvoice
0, // discreet
0, // monitor
0, // videodispatch
0, // ambience
0, // voiceconf
0, // videoconf
];
// 正在通话的call
this.connectingCallMgr = [
[], // voice
[], // video
[], // halfvoice
[], // discreet
[], // monitor
[], // videodispatch
[], // ambience
[], // voiceconf
[], // videoconf
];
// 视频媒体信息
// 由于创建窗口到创建视频通道是由不同事件驱动的,所以维护该信息用于传输
this.videoMediaInfoBuf = {};
// 内嵌模式视频监控的数量
this.wssflowModeCids = {};
// 维护保持去保持接口调用的关系。
this.holdMgr = [];
// 保存组呼的cid用于与msp进行交互。
// 主要是规避有些场景,只能获取group id不能获取组呼cid的问题。
this.groupCallMgr = {};
// 维护推送的会议状态信息
this.confMgr = {
"accessInfo": {}
};
// 当前用户通话状态信息
this.userStatusMgr = {};
// 当前正在接通的会议的cid
this.currentGoingConfCid = 0;
// 当前正在接通的会议,0表示无会议,其余value位会议id
this.currentGoingConf = 0;
// 当前订阅的会议
this.confSubMgr = {};
// 视频窗口信息
this.windowInfos = [];
this.broadcastFile = {};
this.broadcastBase64 = {};
// 所有通话信息
this.allCalls = {
"-1": {
// 通话状态
callState: -1,
// 通话接收时间
startTime: new Date().getTime(),
caller: "0",
callee: "0",
callType: 0,
fmt: "0",
grpid: "0",
members: null
}
};
// 正在呼叫通话
this.callingCid = -1;
// 当前通话状态
this.currentCallState = this.IDLE;
this.deleteBroadcastFile = function(isdn) {
if (undefined != this.broadcastFile[isdn]) {
delete this.broadcastFile[isdn];
return;
}
var userName = "0" + isdn;
if (undefined != this.broadcastFile[userName]) {
delete this.broadcastFile[userName];
return;
}
var userName1 = "00" + isdn;
if (undefined != this.broadcastFile[userName1]) {
delete this.broadcastFile[userName1];
return;
}
}
this.deleteBroadcastBase64 = function (isdn) {
if (undefined != this.broadcastBase64[isdn]) {
delete this.broadcastBase64[isdn];
return;
}
var userName = "0" + isdn;
if (undefined != this.broadcastBase64[userName]) {
delete this.broadcastBase64[userName];
return;
}
var userName1 = "00" + isdn;
if (undefined != this.broadcastBase64[userName1]) {
delete this.broadcastBase64[userName1];
return;
}
}
this.getBroadcastFile = function(isdn) {
if (undefined != this.broadcastFile[isdn]) {
return this.broadcastFile[isdn];
}
var userName = "0" + isdn;
if (undefined != this.broadcastFile[userName]) {
return this.broadcastFile[userName];
}
var userName1 = "00" + isdn;
if (undefined != this.broadcastFile[userName1]) {
return this.broadcastFile[userName1];
}
return null;
}
this.getBroadcastBase64 = function (isdn) {
if (undefined != this.broadcastBase64[isdn]) {
return this.broadcastBase64[isdn];
}
var userName = "0" + isdn;
if (undefined != this.broadcastBase64[userName]) {
return this.broadcastBase64[userName];
}
var userName1 = "00" + isdn;
if (undefined != this.broadcastBase64[userName1]) {
return this.broadcastBase64[userName1];
}
return null;
}
this.saveBroadcastFile = function (isdn, audioFile, audioBase64) {
this.broadcastFile[isdn] = audioFile;
this.broadcastBase64[isdn] = audioBase64;
}
this.updateConfInfo = function(data, isSaveAccessInfo) {
if (isSaveAccessInfo == true) {
if (_mthis.confMgr["accessInfo"] == undefined) {
_mthis.confMgr["accessInfo"] = {};
}
_mthis.confMgr["accessInfo"][data["confId"]] = data;
} else {
_mthis.confMgr[data["value"]["confId"]] = data;
}
}
this.updateUserStatus = function(data) {
_mthis.userStatusMgr[data["value"]["peerid"]] = data["statusvalue"];
_mthis.userStatusMgr[data["value"]["isdn"]] = data["statusvalue"];
// 用于规避问题
// 当通话被转接或抢话的时候,caller和callee的信息会出错,需要icpsdk来矫正。
if (cloudICP.util.callStatusMgr.connectingCallMgr[0].length != 0 && data["statusvalue"] == "4022") {
var cid = cloudICP.util.callStatusMgr
.callingCid; //cloudICP.util.callStatusMgr.connectingCallMgr[0][cloudICP.util.callStatusMgr.connectingCallMgr[0].length - 1];
var call = cloudICP.util.callStatusMgr.allCalls[cid];
if (data["value"]["isdn"] == cloudICP.userInfo["isdn"]) {
call["callee"] = data["value"]["isdn"];
call["caller"] = data["value"]["peerid"];
} else {
call["callee"] = data["value"]["peerid"];
call["caller"] = data["value"]["isdn"];
}
}
}
this.updateCallStatus = function(callType, callState, data, confInfo) {
var cid = data["value"]["cid"];
if (callType == _mthis.GROUP) {
_mthis.groupCallMgr[data["grpid"]] = cid;
return;
}
if (_mthis.allCalls[cid] == undefined) {
_mthis.allCalls[cid] = {
callType: callType,
caller: data["value"]["caller"],
callee: data["value"]["callee"],
startTime: new Date().getTime(),
};
_mthis.numberOfCall[callType] += 1;
}
var call = _mthis.allCalls[cid];
call["callState"] = callState;
if (callType == _mthis.VIDEOCONF) {
call.callType = _mthis.VIDEOCONF;
} else {
callType = call.callType;
}
if (confInfo) {
call["confId"] = confInfo["confInternalId"];
} else if (data["value"] && data["value"]["confInfo"] != undefined) {
call["confId"] = data["value"]["confInfo"]["confInternalId"];
}
switch (callState) {
case _mthis.RINGING:
if (call.callType != _mthis.MONITOR) {
_mthis.callingCid = cid;
_mthis.currentCallState = _mthis.RINGING;
}
break;
case this.CONNECTING:
// 对视频能力进行维护
if (call.callType == _mthis.VIDEOCONF || call.callType == _mthis.VIDEO || call.callType == _mthis
.MONITOR || call.callType == _mthis.VIDEODISPATCH) {
call["fmt"] = data["value"]["fmt"];
switch (data["value"]["fmt"]) {
case "0":
cloudICP.dispatch.video.currentVideoAbility += 0.5
break;
case "1":
cloudICP.dispatch.video.currentVideoAbility += 0.5
break;
case "2":
cloudICP.dispatch.video.currentVideoAbility += 1
break;
case "3":
cloudICP.dispatch.video.currentVideoAbility += 2
break;
case "4":
cloudICP.dispatch.video.currentVideoAbility += 4
break;
case "5":
cloudICP.dispatch.video.currentVideoAbility += 8
break;
case "6":
cloudICP.dispatch.video.currentVideoAbility += 16
break;
default:
break;
}
}
_mthis.callingCid = cid;
if (call.callType != _mthis.MONITOR) {
_mthis.currentCallState = _mthis.CONNECTING;
}
if (!cloudICP.util.includes(_mthis.connectingCallMgr[callType], cid)) {
_mthis.connectingCallMgr[callType].push(cid);
}
if (call.callType == _mthis.VIDEOCONF || call.callType == _mthis.VOICECONF) {
_mthis.currentGoingConf = call["confId"];
_mthis.currentGoingConfCid = cid;
}
break;
case _mthis.RELEASE:
// 对视频能力进行维护
if (call.callType == _mthis.VIDEOCONF || call.callType == _mthis.VIDEO || call.callType == _mthis
.MONITOR || call.callType == _mthis.VIDEODISPATCH) {
switch (call["fmt"]) {
case "0":
cloudICP.dispatch.video.currentVideoAbility -= 0.5
break;
case "1":
cloudICP.dispatch.video.currentVideoAbility -= 0.5
break;
case "2":
cloudICP.dispatch.video.currentVideoAbility -= 1
break;
case "3":
cloudICP.dispatch.video.currentVideoAbility -= 2
break;
case "4":
cloudICP.dispatch.video.currentVideoAbility -= 4
break;
case "5":
cloudICP.dispatch.video.currentVideoAbility -= 8
break;
case "6":
cloudICP.dispatch.video.currentVideoAbility -= 16
break;
default:
break;
}
}
if (_mthis.callingCid == cid) {
_mthis.callingCid = -1;
if (call.callType != _mthis.MONITOR) {
_mthis.currentCallState = _mthis.IDLE;
}
}
_mthis.numberOfCall[callType] -=1;
var index = _mthis.connectingCallMgr[callType].indexOf(cid);
if (index != -1) {
_mthis.connectingCallMgr[callType].splice(index, 1);
}
if (call.callType == _mthis.VIDEOCONF || call.callType == _mthis.VOICECONF) {
if (_mthis.currentGoingConf == call["confId"]) {
_mthis.currentGoingConf = 0;
_mthis.currentGoingConfCid = cid;
}
if (undefined != cloudICP.util.callStatusMgr.windowInfos[2147483647]){
delete cloudICP.util.callStatusMgr.windowInfos[2147483647];
}
}
break;
case _mthis.HOLD:
var index = _mthis.connectingCallMgr[callType].indexOf(cid);
if (index != -1) {
_mthis.connectingCallMgr[callType].splice(index, 1);
}
break;
default:
break;
}
return true;
};
this.holdCall = function(cid, tabPageId) {
var currentCall = _mthis.allCalls[cid];
// 因为视频监控和视频分发可并发,所以不需要进行自动保持
if (
currentCall.callType == _mthis.MONITOR ||
currentCall.callType == _mthis.VIDEODISPATCH
) {
return false;
}
if (currentCall.callType != _mthis.DISCREET &&
currentCall.callType != _mthis.HALFVOICE &&
currentCall.callType != _mthis.VIDEO &&
currentCall.callType != _mthis.VIDEOCONF) {
if (_mthis.connectingCallMgr[_mthis.VIDEO].length != 0 ||
_mthis.connectingCallMgr[_mthis.DISCREET].length != 0 ||
_mthis.connectingCallMgr[_mthis.HALFVOICE].length != 0 ||
_mthis.connectingCallMgr[_mthis.VIDEOCONF].length != 0) {
return _mthis.holdHelper(currentCall, cid, tabPageId);
};
}
var toHoldCall;
var checkArr = [_mthis.VOICE, _mthis.VOICECONF, _mthis.AMBIENCE];
for (var i = 0; i < checkArr.length; i++) {
var type = checkArr[i];
for (var j = 0; j < _mthis.connectingCallMgr[type].length; j++) {
if (_mthis.connectingCallMgr[type][j] != cid) {
toHoldCall = _mthis.allCalls[_mthis.connectingCallMgr[type][j]];
var ret = _mthis.holdHelper(toHoldCall, _mthis.connectingCallMgr[type][j], tabPageId);
if (ret == true) {
var index = _mthis.connectingCallMgr[type].indexOf(_mthis.connectingCallMgr[type][j]);
if (index != -1) {
_mthis.connectingCallMgr[type].splice(index, 1);
}
}
return ret;
}
}
}
return false;
};
this.unholdCall = function(cid, tabPageId) {
var currentCall = this.allCalls[cid];
if (_mthis.connectingCallMgr[_mthis.VIDEO].length != 0 ||
_mthis.connectingCallMgr[_mthis.DISCREET].length != 0 ||
_mthis.connectingCallMgr[_mthis.HALFVOICE].length != 0 ||
_mthis.connectingCallMgr[_mthis.VIDEOCONF].length != 0) {
return false;
};
var toHoldCall;
var checkArr = [_mthis.VOICE, _mthis.VOICECONF, _mthis.AMBIENCE];
for (var i = 0; i < checkArr.length; i++) {
var type = checkArr[i];
for (var j = 0; j < _mthis.connectingCallMgr[type].length; j++) {
if (_mthis.connectingCallMgr[type][j] != cid) {
toHoldCall = _mthis.allCalls[_mthis.connectingCallMgr[type][j]];
var ret = _mthis.holdHelper(toHoldCall, _mthis.connectingCallMgr[type][j], tabPageId);
if (ret == true) {
if (currentCall) {
var type = currentCall.callType;
_mthis.connectingCallMgr[type].push(cid);
}
var index = _mthis.connectingCallMgr[type].indexOf(_mthis.connectingCallMgr[type][j]);
if (index != -1) {
_mthis.connectingCallMgr[type].splice(index, 1);
}
}
return ret;
}
}
}
return false;
}
this.holdHelper = function(call, cid, tabPageId) {
if (call) {
if (call["callee"] && call["callee"] == cloudICP.userInfo["isdn"]) {
if (call.callType != _mthis.VOICECONF) {
cloudICP.dispatch.voice.hold({
"to": call["caller"],
"cid": cid,
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnHoldFailure",
"rsp": data["rsp"],
"value": {
"peerid": "",
"cid": ""
}
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"]);
}
}
});
} else {
cloudICP.dispatch.conf.holdConf({
"to": call["caller"],
"cid": cid,
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnHoldFailure",
"rsp": data["rsp"],
"value": {
"peerid": "",
"cid": ""
}
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"].event = retEvent;
sendEvent2Page(0, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"]);
}
}
});
}
return true;
} else if (call["caller"] && call["caller"] == cloudICP.userInfo["isdn"]) {
if (call.callType != _mthis.VOICECONF) {
cloudICP.dispatch.voice.hold({
"to": call["callee"],
"cid": cid,
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnHoldFailure",
"rsp": data["rsp"],
"value": {
"peerid": "",
"cid": ""
}
}
cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["VoiceNotify"]["OnHoldFailure"]);
}
}
});
} else {
cloudICP.dispatch.conf.holdConf({
"to": call["callee"],
"cid": cid,
"callback": function(data) {
if (data["rsp"] != "0") {
var retEvent = {
"eventName": "OnHoldConfFailure",
"rsp": data["rsp"],
"value": {
"confCode": "",
"cid": ""
}
}
cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"]["OnHoldConfFailure"].event = retEvent;
sendEvent2Page(tabPageId, cloudICP.dispatch.event.EVENT_LIST["PhoneConfNotify"]["OnHoldConfFailure"]);
}
}
});
}
return true;
} else {
return false;
}
} else {
return false;
}
}
// 确认是否有无法并发的通话存在
this.isAnyCallExisted = function() {
return (_mthis.connectingCallMgr[_mthis.VIDEO].length != 0 ||
_mthis.connectingCallMgr[_mthis.DISCREET].length != 0 ||
_mthis.connectingCallMgr[_mthis.HALFVOICE].length != 0 ||
_mthis.connectingCallMgr[_mthis.VOICE].length != 0 ||
_mthis.connectingCallMgr[_mthis.AMBIENCE].length != 0 ||
_mthis.connectingCallMgr[_mthis.VOICECONF].length != 0 ||
_mthis.connectingCallMgr[_mthis.VIDEOCONF].length != 0)
}
this.cleanUp = function() {
_mthis.currentGoingConf = 0;
_mthis.currentCallState = _mthis.IDLE;
_mthis.callingCid = -1;
_mthis.allCalls = {};
_mthis.numberOfCall = [
0, // voice
0, // video
0, // halfvoice
0, // discreet
0, // monitor
0, // videodispatch
0, // ambience
0, // voiceconf
0, // videoconf
];
_mthis.connectingCallMgr = [
[], // voice
[], // video
[], // halfvoice
[], // discreet
[], // monitor
[], // videodispatch
[], // ambience
[], // voiceconf
[], // videoconf
];
_mthis.videoMediaInfoBuf = {
}
_mthis.holdMgr = [];
_mthis.groupCallMgr = {};
_mthis.confMgr = {};
_mthis.userStatusMgr = {}
_mthis.mediaModeMap.clear();
}
this.mediaModeMap = new Map();
this.checkIsExist = function(param) {
if (this.mediaModeMap.size === 0) {
return true;
} else {
let mediaInfo = this.mediaModeMap.get(parseInt(param["cid"]));
if (undefined == mediaInfo) {
return false;
}
let switch_int = mediaInfo["switch"];
if (switch_int == undefined || switch_int == parseInt(param["switch"])) {
return false;
} else {
return true;
}
}
};
this.addMediaModeInfo = function(param) {
let mediaInfo = {
"type": param["type"],
"switch" : param["switch"]
}
return this.mediaModeMap.set(param["cid"], mediaInfo);
};
this.delMediaModeInfo = function(param) {
return this.mediaModeMap.delete(parseInt(param["cid"]));
};
// 记录 内嵌窗口 相关信息 用来退出时 关闭内嵌窗口
this.wssflowDemoMap = new Map();
this.addWssflowDemoMap = function(cid , demo) {
this.wssflowDemoMap.set(parseInt(cid), demo);
}
this.delWssflowDemoMap = function(cid) {
var demo = this.wssflowDemoMap.get(parseInt(cid));
if (demo != undefined && typeof demo.closeFunc === 'function') {
demo.closeFunc();
}
this.wssflowDemoMap.delete(parseInt(cid));
}
this.cleanWssflowDemoMap = function() {
this.wssflowDemoMap.forEach((item, key) => {
if (item !== undefined && typeof item.closeFunc === 'function') {
item.closeFunc(); // 调用 closeFunc 方法
}
});
this.wssflowDemoMap.clear();
}
};
function SENSITIVE_INFOS() {
//敏感信息关键字,false表示部分保留,true便是全去敏
this.infos = [
["isdn", false], //成员号
["seq", false], //序列号
["session", true],
["user", false],
["localIP", false], //本地ip和端口
["serverIP", false], //服务器ip和端口
["remoteIP", false], //服务器ip和端口
["password", true], //密码
["serverip", false], //服务器ip和端口
["ssotoken", true], //ssotoken
["ipccserveripport", true], //服务器ip和端口
//语音状态通知
["callee", false], //主叫号
["caller", false], //被叫号
["targeter", false], //转接方
["transfer", false], //被转接方
["local", false], //本地ip和端口
["server", false], //服务器ip和端口
//视频状态通知
["from", false], //主叫号
["to", false], //被叫号
["local_audio", false], //本地语音ip和端口
["local_video", false], //本地视频ip和端口
["server_audio", false], //服务器语音ip和端口
["server_video", false], //服务器视频ip和端口
//群组配置更新通知
["departmentid", false], //部门id
["group", false], //群组号
["name", false], //群组名
["setupdcid", false], //创建者用户号
["rid", false], //接收方用户号,0:表示广播
["dcpatchindex", false], //派接组序列号
["grpnumber", false], //群组号
["pgname", false], //群组名
["groupnumber", false], //群组号
["membergroup", false], //成员群组号
["vpnid", false], //vpn号
//短彩信更新通知
["content", true], //消息内容
["emerg_groupid", false], //紧急状态的群组ID
["emerg_ueid", false], //紧急状态的终端ID
["groupid", false], //群组号
["attach", false], //彩信附件地址
//GIS状态通知
["cellname", false], //终端名称
["location", false], //位置信息
["cellid", false],
//资源状态通知
["speaker", false], //组呼状态通知,发言人
["attaching", false], //注册状态通知,用户当前加入的组号
["peerid", false],
["speakid", false],
["resid", false],
["memberid", false],
["localip", false],
["newip", false],
//创建会议通知
["passcode", true], //密码
["ObhId", false],
["SpeakerId", false],
//音视频会议通知
["Number", false], //成员号码
["Name", false], //成员名称
["number", false],
["owner", false], //上墙发起者名称
["termName", false], //终端名称
];
/**
* 处理敏感信息
*/
this.moveSensitiveInfo = function(data) {
var strReturn = ('' + data).slice(0);
for (var i = 0; i < this.infos.length; i++) {
var targetInfo = this.infos[i][0];
var isSecret = this.infos[i][1];
var patternStr = '"' + targetInfo + '[\\\\"]"?.?:.?[\\\\"]?"?([\\w\\.]*?)[\\\\"]?"?[,}]';
var parten = new RegExp(patternStr);
var resArr = strReturn.match(parten);
for (var it in resArr) {
var strReplace = resArr[it];
var reg = /:.*?([\w\.]+).*?[,}]/;
var texts = reg.exec(strReplace);
if (!texts) {
break;
}
var text = "";
if (!isSecret) {
text = '****' + texts[1].charAt(texts[1].length - 1);
} else {
text = '*****';
}
var strRes = strReplace.replace(texts[1], text);
strReturn = strReturn.replace(strReplace, strRes);
}
}
return strReturn;
};
}
if (!String.prototype.format) {
String.prototype.format = function() {
var args = arguments;
return this.replace(/{(\d+)}/g, function(match, number) {
return typeof args[number] != 'undefined' ?
args[number] :
match;
});
};
}
ICPSDK_Util.prototype.parseMediaData = function(buf, data) {
// 创建 DataView 用于解析二进制数据
let view = new DataView(buf);
// 读取 result(1 字节)
let result = view.getUint32(0, true);
data["result"] = result;
// console.debug("result:" + result);
// 读取 rsp(4 字节)
let rsp = view.getUint32(4, true); // 从第 1 字节开始读取 4 字节
data["rsp"] = rsp;
// console.debug("rsp:" + rsp);
// 读取 format(16 字节)
let format = '';
for (let i = 8; i < 24; i++) {
const charCode = view.getUint8(i);
if (charCode === 0) break; // 遇到填充字节 (null) 时停止
format += String.fromCharCode(charCode);
}
data["format"] = format;
// console.debug("format:" + format);
// 读取 len(4 字节)
let len = view.getUint32(24, true);
// console.debug("len:" + len);
// 读取 cid(4 字节)
let cid = view.getUint32(28, true);
data["cid"] = cid;
// console.debug("cid:" + cid);
// 读取 buf(len 字节)
let dataArray = new Uint8Array(buf, 32, len);
data["data"] = dataArray;
// 可以根据需要对 data 进行进一步的处理,例如解码 base64 数据等
}