📄 cbmsapplet.java
字号:
package com.csst.csep.cbms;
import java.applet.Applet;
import netscape.javascript.JSObject;
public class CBMSApplet extends Applet
{
// private static final long serialVersionUID = 5680561216483903338L;
/**
*
*/
private static final long serialVersionUID = 4523307226179100942L;
MsgDealCallback callback = new MsgDealCallback(this);
XmlPacket m_AppletTreate = new XmlPacket(callback);
String m_RecvXml;
public static Applet applet = null;
int SetAgentStatus = 1; //设置座席状态
int AnswerCall = 2; //接听电话
int CancelCall = 3; //拒接电话
int TransferCall = 4; //转接电话
int ReplaceAnswerCall = 5; //代接电话
int OutCall = 6; //呼出电话
int InviteMultiCall = 7; //邀请加入多方通话
int KickMultiCall = 8; //踢出多方通话
int HangupCall = 9; //结束通话
int MonitorCall = 10; //监听
int InsertCall = 11; //强插
int BreakCall = 12; //强拆
int IncallNotify = 13; //电话通知消息
int GetAgentPhoneNum = 15; //查询座席电话号码
/*
作者:吴晓彦 创建时间:2008.5.07
函数名:destroy
函数作用:applet 标准destroy方法重载,关闭客户端连接
函数类型:void
输入参数:无
输出参数:无
*/
public void destroy()
{
m_AppletTreate.CloseClient();
}
/*
作者:吴晓彦 创建时间:2008.5.07
函数名:init
函数作用:applet 标准init方法重载,在此初始化客户端连接。
函数类型:void
输入参数:无
输出参数:无
*/
public void init()
{
}
public void initClient(String m_SubSys)
{
m_AppletTreate.initClient(m_SubSys,2500,callback,30);
}
/*
作者:吴晓彦 创建时间:2008.5.8
函数名:SendMessageA
函数作用:发送非阻塞消息
函数类型:int
输入参数:String Data 消息体(除开消息头和消息尾的内容)
String To 要发送的系统名称
int id 消息格式中的序列号
boolean base64code 是否采用base64编码
输出参数:响应消息格的序列号
*/
public int SendMessageA(String Data, String To,String id)
{
int SendId;
if( id.equals("") || id == null || id.trim().length() == 0 )
{
id = "0";
}
SendId = m_AppletTreate.sendMessageA(Data,To,Integer.parseInt(id),true);
return SendId;
}
/*
作者:吴晓彦 创建时间:2008.5.8
函数名:SendMessageS
函数作用:发送阻塞消息
函数类型:String
输入参数:String Data 消息体(除开消息头和消息尾的内容)
String To 要发送的系统名称
int timeover 超时时间
boolean base64code 是否采用base64编码
输出参数:响应消息的内容
*/
public String SendMessageS(String Data, String To,String timeover)
{
String m_Return = "";
if( timeover.trim().length() == 0 || timeover.equals("") || timeover == null )
{
timeover = "20";
}
m_Return = m_AppletTreate.sendMessageS(Data,To,Integer.parseInt(timeover),true);
return m_Return;
}
/*
作者:吴晓彦 创建时间:2008.5.07
函数名:SendMsg
函数作用:发送CBMS消息
函数类型:String
输入参数:String m_Type 要发送的消息类型
SetAgentStatus = 1; //设置座席状态<br>
AnswerCall = 2; //接听电话<br>
CancelCall = 3; //拒接电话<br>
TransferCall = 4; //转接电话<br>
ReplaceAnswerCall = 5; //代接电话<br>
OutCall = 6; //呼出电话<br>
InviteMultiCall = 7; //邀请加入多方通话<br>
KickMultiCall = 8; //踢出多方通话<br>
HangupCall = 9; //结束通话<br>
MonitorCall = 10; //监听<br>
InsertCall = 11; //强插<br>
BreakCall = 12; //强拆<br>
IncallNotify = 13; //电话通知消息<br>
String id 消息的序列号
String m_Agent 座席编号
String m_Phone 呼出的电话号码
String m_CallId 表示会议的编号
String m_Status 座席状态 0:空闲状态
1:离开状态
2:示忙
String m_Address 电话安装地点
String m_Mastername 机主姓名
输出参数:响应的消息内容或是响应的消息序列号
*/
public String SendMsg(String m_Type,String id,String m_Agent,String m_Phone,
String m_CallId,String m_Status,String m_Address,String m_Mastername)
{
int iType;
int iReturn;
iReturn = -1;
if( m_Type.trim().length() == 0 || m_Type.equals("") || m_Type == null )
{
m_Type = "0";
}
if( m_Agent.trim().length() == 0 || m_Type.equals("") || m_Type == null )
{
m_Agent = null;
}
if( id.equals("") || id == null || id.trim().length() == 0 )
{
id = "0";
}
if( m_Phone.trim().length() == 0 || m_Phone.equals("") || m_Phone == null )
{
m_Phone = null;
}
if( m_CallId.trim().length() == 0 || m_CallId.equals("") || m_CallId == null )
{
m_CallId = null;
}
if( m_Address.trim().length() == 0 || m_Address.equals("") || m_Address == null )
{
m_Address = null;
}
if( m_Mastername.trim().length() == 0 || m_Mastername.equals("") || m_Mastername == null )
{
m_Mastername = null;
}
if( m_Status.trim().length() == 0 || m_Status.equals("") || m_Status == null )
{
m_Status = null;
}
iType = Integer.parseInt(m_Type);
switch(iType)
{
//设置座席状态
case 1:
iReturn = m_AppletTreate.SetAgentStatus(id,m_Status);
break;
//接听电话
case 2:
iReturn = m_AppletTreate.AnswerCall(id);
break;
//拒接电话
case 3:
iReturn = m_AppletTreate.CancelCall(id);
break;
//转接电话
case 4:
m_RecvXml = m_AppletTreate.TransferCall(60,m_Agent);
return m_RecvXml;
//代接电话
case 5:
m_RecvXml = m_AppletTreate.ReplaceAnswerCall(60,m_Agent);
break;
//呼出电话
case 6:
iReturn = m_AppletTreate.OutCall(id,m_Phone);
break;
//邀请加入多方通话
case 7:
iReturn = m_AppletTreate.InviteMultiCall(id,m_CallId,m_Agent);
break;
//踢出多方通话
case 8:
iReturn = m_AppletTreate.KickMultiCall(id,m_CallId,m_Agent);
break;
//结束通话
case 9:
iReturn = m_AppletTreate.HangupCall(id);
break;
//监听
case 10:
iReturn = m_AppletTreate.MonitorCall(id,m_Agent,m_Status);
break;
//强插
case 11:
iReturn = m_AppletTreate.InsertCall(id,m_Agent);
break;
//强拆
case 12:
iReturn = m_AppletTreate.BreakCall(id,m_Agent);
break;
//电话通知消息
case 13:
iReturn = m_AppletTreate.IncallNotify(id,m_Phone,m_Address,m_Mastername);
break;
case 15:
iReturn = m_AppletTreate.QueryAgentPhoneNum();
break;
//结束通话
default:
break;
}
if( iReturn != -1 )
{
m_RecvXml = String.valueOf(iReturn);
}
return m_RecvXml;
}
/*
public void start() {
m_AppletTreate.SetAgentStatus("0","1");
m_AppletTreate.TransferCall(60,"111");
}
*/
/*
作者:吴晓彦 创建时间:2008.5.07
函数名:RecvMsg
函数作用:接收并解析除邀请加入多方通话响应消息外的所有消息
函数类型:void
输入参数:无
输出参数:将消息类型和状态存入变量Arguments中
*/
public void RecvMsg(String arguments[])
{
try
{
JSObject win = JSObject.getWindow(this);
win.call("RecvMsg", arguments);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -