⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 softagent.js

📁 CRM项目的相关文件
💻 JS
字号:
// JavaScript Document
var ERR_SUCCESS=1;// 成功
var ERR_FAILURE=0;// 失败

var SET_AGENTSTATE_READY=50;//就绪
var SET_AGENTSTATE_BUSY=51;//忙


var CALL_UNKNOWN = 1;
//第一层状态<2^5
var CALL_DIALING= 2;
var CALL_RINGING = 4;
var CALL_ESTABLISHED=8;
var CALL_DESTINATIONBUSY=16;

var CALL_MULTI_MODE=32;
var CALL_MULTI_MODE_UPHELD=64;
//复合状态
var CALL_HELD=32;
var CALL_TRANSFERED=64;
var CALL_CONFERENCED=128;
var CALL_CONSULT=256;
var CALL_ERROR=512;

var AGENT_UNKNOWN=1;
var AGENT_LOGIN=2;
var AGENT_READY=4;
var AGENT_ERROR=8;

var AGENT_WORKMODE_REST=21;
var AGENT_WORKMODE_COMMON=20;
var AGENT_WORKMODE_AFTERCALLWORK=22;

var AGENT_TYPE_MONITOR='1';
var AGENT_TYPE_COMMON='0';


var BUTTON_UNKNOWN=999;
var BUTTON_AgentLogin=100;
var BUTTON_AgentReady =101;
var BUTTON_Hangup=102;
var BUTTON_DialAnswer=103;
var BUTTON_HoldRetrieve=104;
var BUTTON_Consult=105;
var BUTTON_Transfer=106;
var BUTTON_Conference=107;
var BUTTON_AgentRest=108;


var DIAL_EXTENTION=49;
var DIAL_AGENTID=50;
var DIAL_ACD=51;
var DIAL_AGENTGROUP=52;


CALLTYPE_BASE=48;// 基础值
CALLTYPE_NORMAL=49;// 普通呼叫
CALLTYPE_CONSULT=50;// 咨询呼叫
CALLTYPE_TRANSFER=51;// 转移呼叫
CALLTYPE_CONFERENCE=52;// 会议呼叫
CALLTYPE_CONSULTEE=53;// 咨询呼叫(顾问方)




function clearAgent()
{
	agentStatus=AGENT_UNKNOWN;
	agentCmdWorkMode=AGENT_WORKMODE_COMMON;
	agentWorkMode=AGENT_WORKMODE_COMMON;
	callStatus=CALL_UNKNOWN;
	consultMonitor.consultState=CONSULT_IDLE;
	transferMonitor.transferState=TRANSFER_IDLE;
	conferenceMonitor.conferenceState=CONFERENCE_IDLE;
	setClientInfo('','','','','','','');
	clearAgentLog();
}
function clearCall()
{
	callStatus=CALL_UNKNOWN;
	consultMonitor.consultState=CONSULT_IDLE;
	transferMonitor.transferState=TRANSFER_IDLE;
	conferenceMonitor.conferenceState=CONFERENCE_IDLE;
	softAgent.ctiClearData();
	bCallNotify=false;
}
function CmdNameToInt(cmd)
{
	var val=BUTTON_UNKNOWN;
	if(cmd=='AgentLogin')
		val=BUTTON_AgentLogin;
	else if(cmd=='AgentReady')
		val=BUTTON_AgentReady;
	else if(cmd=='AgentRest')
		val=BUTTON_AgentRest;
	else if(cmd=='Hangup')
		val=BUTTON_Hangup;
	else if(cmd=='DialAnswer')
		val=BUTTON_DialAnswer;
	else if(cmd=='HoldRetrieve')
		val=BUTTON_HoldRetrieve;
	else if(cmd=='Consult')
		val=BUTTON_Consult;
	else if(cmd=='Transfer')
		val=BUTTON_Transfer;
	else if(cmd=='Conference')
		val=BUTTON_Conference;
 	return val;
}

function clickCommandButton(cmd)
{
	var val=CmdNameToInt(cmd);
	//alert(val);
	var dNo=getRealDestNoValue();
	var dNoType=getRealDestNoType();
	switch (val)
	{
		case BUTTON_AgentLogin:
			if(equalCallStatus(CALL_ESTABLISHED)) return;
			if(equalAgentStatus(AGENT_LOGIN))
			{
				if(confirm("do you want to exist?"))
				{
					softAgent.ctiUnRegister();
					//softAgent.ctiExitInstance();
				}
				else
				{
					return;
				}
			}
			else
			{
				if(softAgent.ctiIniInstance()==ERR_SUCCESS)
				{
					var a=myAgentInfo.groupno.split(",");
					for(var i=0;i<a.length;i++)
					{
						softAgent.ctiAddGroup(a[i],myAgentInfo.agentLevel);
					}
					softAgent.ctiRegister(myAgentInfo.bAutoBusy,myAgentInfo.workCode, myAgentInfo.agentType);
				}
				else
				{
					softAgent.ctiAddGroup(myAgentInfo.groupno,myAgentInfo.agentLevel);
					if(softAgent.ctiRegister(myAgentInfo.bAutoBusy,myAgentInfo.workCode, myAgentInfo.agentType)!=ERR_SUCCESS)
					{
						//softAgent.ctiExitInstance();
					}
				}
			}
			break;
		case BUTTON_AgentReady:

			if(equalCallStatus(CALL_ESTABLISHED)) return;
			//alert("ddeeeeeeeeeee");
			if(equalAgentStatus(AGENT_READY))
			{
				if(getPageSaveOrNot()==1)
					softAgent.ctiSetAgentState(SET_AGENTSTATE_BUSY);
				else
					return;
			}
			else if(getAgentWorkMode()!=AGENT_WORKMODE_REST)
			{
				softAgent.ctiSetAgentState(SET_AGENTSTATE_READY);
			}
			setAgentCmdWorkMode(AGENT_WORKMODE_COMMON);
			break;
		case BUTTON_AgentRest:
			if(equalCallStatus(CALL_ESTABLISHED)) return;
			if(equalAgentStatus(AGENT_READY))
			{
				softAgent.ctiSetAgentState(SET_AGENTSTATE_BUSY);
			}
			else if(getAgentWorkMode()==AGENT_WORKMODE_REST)
			{
				softAgent.ctiSetAgentState(SET_AGENTSTATE_READY);
			}
			setAgentCmdWorkMode(AGENT_WORKMODE_REST);
			break;
		case BUTTON_Hangup:
			softAgent.ctiHangupCall();
			break;
		case BUTTON_DialAnswer:

			if(equalCallStatus(CALL_UNKNOWN))
			{
				if(equalAgentStatus(AGENT_READY)) return;
				if(dNo==null||dNo=="")
				{
					alert("请选择呼出号码!");
					return;
				}
				softAgent.ctiMakeCall(dNoType,dNo);
			}
			if(equalCallStatus(CALL_RINGING))
			{
				softAgent.ctiAnswerCall();
			}
			break;
		case BUTTON_HoldRetrieve:
			if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==false)
			{
				if(!equalCallStatus(CALL_HELD))
				{
					//alert("established*hold");
					softAgent.ctiHoldCall();
				}
			}
			else if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==true)
			{
				if(equalCallStatus(CALL_HELD))
				{
					//alert("established*retrieved");
					softAgent.ctiRetrieveCall();
				}
			}
			break;
		case BUTTON_Consult:

			if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==false)
			{
				if(!equalCallStatus(CALL_CONSULT))
				{
					if(dNo==null||dNo=="")
					{
						alert("请选择咨询方号码!");
						return;
					}
					//alert("established*initConsultCall");
					softAgent.ctiConsultCall(dNoType,dNo);
					setConsultMonitorState(CONSULT_INITIATED);
				}
			}else if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==true)
			{
				if(equalCallStatus(CALL_CONSULT))
				{
					//alert("established*unConsultCall");
					softAgent.ctiUnConsultCall();
				}
			}
			break;
		case BUTTON_Transfer:

			if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==false)
			{
				if(!equalCallStatus(CALL_TRANSFERED))
				{
					if(dNo==null||dNo=="")
					{
						alert("请选择转接方号码!");
						return;
					}
					//alert("established*transfer");
					softAgent.ctiTransferCall(dNoType,dNo);
					setTransferMonitorState(TRANSFER_INITIATED);
				}
			}
			else if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==true)
			{
				if(equalCallStatus(CALL_TRANSFERED))
				{
					//alert("established*untransfered");
					softAgent.ctiStopTransfer();
				}
			}
			break;
		case BUTTON_Conference:

			if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==false)
			{
				if(!equalCallStatus(CALL_CONFERENCED))
				{
					if(dNo==null||dNo=="")
					{
						alert("请选择会议方号码!");
						return;
					}
					//alert("established*conferenced");
					softAgent.ctiConferenceCall(dNoType,dNo);
					setConferenceMonitorState(CONFERENCE_INITIATED);
				}
			}else if(equalCallStatus(CALL_ESTABLISHED)&&equalMultiModeStatus()==true)
			{
				if(equalCallStatus(CALL_CONFERENCED))
				{
					//alert("established*unconferenced");
					softAgent.ctiStopConference();
				}
			}
			break;
	}
}
function getAttachData()
{
}
function setAttachData()
{
}
function getRealDestNoValue()
{
	var destDnNo=document.getElementById("destDn").value;
	return destDnNo;
}
function getRealDestNoType()
{
	var destDnNo=document.getElementById("destDn");
	var destDnType=document.getElementById("destDnType");
	var dI=destDnNo.selectedIndex;
	var dT=destDnType.options[dI].value;
	return dT;
}


var imgArray=new Array(8);
var imgPath="images/";
imgArray[0]=new ImageSrc('Sp_login_enable.gif','Sp_login_unselected.gif','Sp_logout_selected.gif','Sp_logout_disable.gif','','',false);//login
imgArray[1]=new ImageSrc('Sp_manulBusy_enable.gif','Sp_manulBusy_unselected.gif','Sp_manulReady_selected.gif','Sp_manulReady_disable.gif','','',false);//ready
imgArray[2]=new ImageSrc('Sp_hangup_enable.gif','Sp_hangup_unselected.gif','Sp_hangup_enable.gif','Sp_hangup_unselected.gif','','',false);//hangup
imgArray[3]=new ImageSrc('Sp_dial_enable.gif','Sp_dial_unselected.gif','Sp_answer_selected.gif','Sp_answer_unselected.gif','Sp_dialing_disable.gif','Sp_dialing_disable.gif',false);//dialAnswer
imgArray[4]=new ImageSrc('Sp_held_enable.gif','Sp_held_unselected.gif','Sp_retrieve_selected.gif','Sp_retrieve_disable.gif','','',false);//hold
imgArray[5]=new ImageSrc('Sp_initConsult_enable.gif','Sp_initConsult_unselected.gif','Sp_initConsult_selected.gif','Sp_initConsult_disable.gif','','',false);//consult
imgArray[6]=new ImageSrc('Sp_initTransfer_enable.gif','Sp_initTransfer_unselected.gif','Sp_initTransfer_enable.gif','Sp_initTransfer_unselected.gif','','',false);//transfer
imgArray[7]=new ImageSrc('Sp_initConference_enable.gif','Sp_initConference_unselected.gif','Sp_compConference_selected.gif','Sp_compConference_disable.gif','','',false);//conference
imgArray[8]=new ImageSrc('Sp_startRest_enable.gif','Sp_startRest_unselected.gif','Sp_endRest_selected.gif','Sp_endRest_disable.gif','','');//conference

function ImageSrc(imgEnable,imgDisable,imgSelected,imgUnseleted,imgOther,imgThird)
{
	this.imgEnable=imgEnable;
	this.imgDisable=imgDisable;
	this.imgSelected=imgSelected;
	this.imgUnseleted=imgUnseleted;
	this.imgOther=imgOther;
	this.imgThird=imgThird;

}

var IMGSTATE_UNKNOWN=0;
var IMGSTATE_ENABLE=2;
var IMGSTATE_DISABLE=4;
var IMGSTATE_SELECTED=8;
var IMGSTATE_UNSELECTED=16;
var IMGSTATE_IMGOTHER=32;
var IMGSTATE_IMGTHIRD=64;

function setImgSrc(img0,img1,img2,img3,img4,img5,img6,img7,img8)
{
	var img_login=document.getElementById("AgentLogin");
	var img_ready=document.getElementById("AgentReady");
	var img_rest=document.getElementById("AgentRest");
	var img_hangup=document.getElementById("Hangup");
	var img_dialAnswer=document.getElementById("DialAnswer");
	var img_holdRetrieve=document.getElementById("HoldRetrieve");
	var img_Consult=document.getElementById("Consult");
	var img_Transfer=document.getElementById("Transfer");
	var img_Conference=document.getElementById("Conference");
	getImgSrc(img_login,imgArray[0],img0);
	getImgSrc(img_ready,imgArray[1],img1);
	getImgSrc(img_rest,imgArray[8],img2);
	getImgSrc(img_hangup,imgArray[2],img3);
	getImgSrc(img_dialAnswer,imgArray[3],img4);
	getImgSrc(img_holdRetrieve,imgArray[4],img5);
	getImgSrc(img_Consult,imgArray[5],img6);
	getImgSrc(img_Transfer,imgArray[6],img7);
	getImgSrc(img_Conference,imgArray[7],img8);
}
function getImgSrc(btnSrc,valSrc,val)
{
	var result='';
	switch (val)
	{
		case IMGSTATE_ENABLE:
			result=imgPath+valSrc.imgEnable;
			break;
		case IMGSTATE_DISABLE:
			result=imgPath+valSrc.imgDisable;
			break;
		case IMGSTATE_SELECTED:
			result=imgPath+valSrc.imgSelected;
	               break;
	        case IMGSTATE_UNSELECTED:
	        	result=imgPath+valSrc.imgUnseleted;
	        	break;
		case IMGSTATE_IMGOTHER:
			result=imgPath+valSrc.imgOther;
			break;
		case IMGSTATE_IMGTHIRD:
			result=imgPath+valSrc.imgThird;
			break;
        }
        if(result!='')
        {
        	btnSrc.src=result;
        }

}


var btnArray=new Array(8);
btnArray[0]=document.getElementById("AgentLogin");
btnArray[1]=document.getElementById("AgentReady");
btnArray[2]=document.getElementById("Hangup");
btnArray[3]=document.getElementById("DialAnswer");
btnArray[4]=document.getElementById("HoldRetrieve");
btnArray[5]=document.getElementById("Consult");
btnArray[6]=document.getElementById("Transfer");
btnArray[7]=document.getElementById("Conference");
btnArray[8]=document.getElementById("AgentRest");


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -