新太openEAPBS坐席业务开发手册.docx

上传人:b****5 文档编号:4625842 上传时间:2022-12-07 格式:DOCX 页数:11 大小:491.12KB
下载 相关 举报
新太openEAPBS坐席业务开发手册.docx_第1页
第1页 / 共11页
新太openEAPBS坐席业务开发手册.docx_第2页
第2页 / 共11页
新太openEAPBS坐席业务开发手册.docx_第3页
第3页 / 共11页
新太openEAPBS坐席业务开发手册.docx_第4页
第4页 / 共11页
新太openEAPBS坐席业务开发手册.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

新太openEAPBS坐席业务开发手册.docx

《新太openEAPBS坐席业务开发手册.docx》由会员分享,可在线阅读,更多相关《新太openEAPBS坐席业务开发手册.docx(11页珍藏版)》请在冰豆网上搜索。

新太openEAPBS坐席业务开发手册.docx

新太openEAPBS坐席业务开发手册

 

 

openEAP-BS坐席业务开发手册

 

编制:

新太科技开发中心

2007.06.04

 

目录

1.编写说明3

2.核心类库3

2.1.eap_agent_common.jar3

3.坐席业务应用的开发3

3.1.坐席业务应用服务端接口3

3.1.1.获取操作员相关信息3

3.1.2.获取来电客户相关信息5

3.2.坐席业务模块前台操作(HTML/JavaScript)6

3.2.1.坐席框架界面说明6

3.2.2.frame_cti桢内提供的可访问对象6

3.3.坐席业务模块中处理常用话路事件/消息7

3.4.座席框架与IVR相关的相关约定9

3.5.坐席控件提供TCP话务操作接口9

3.6.坐席控件提供HTTP话务操作接口10

 

1.编写说明

本手册是为指导开发人员在openEAP1.1以上平台上开发坐席业务应用而编写的。

开发人员编写的坐席业务Web应用是基于坐席框架的,用来实现某一客户需求的,带界面或不带界面的web模块。

首先,坐席业务Web应用的开发必须遵循J2EE规范。

为了配置和使用的方便,坐席业务Web应用也需要基于openEAP平台,需要符合openEAP业务开发规范《openEAP平台应用开发手册》。

坐席业务Web应用需要部署在新太openEAP企业应用平台上,与坐席框架应用agent.war部署在一起。

在符合openEAP业务开发规范的前提下,开发坐席业务Web应用,请阅读本手册。

2.核心类库

2.1.eap_agent_common.jar

提供与坐席框架相关接口的API。

3.坐席业务应用的开发

3.1.坐席业务应用服务端接口

坐席业务应用服务端是指运行于openEAP—J2EE容器中JavaVM中的后台JSP/JavaBean等程序代码。

3.1.1.获取操作员相关信息

可以通过从坐席框架的共享变量获取或openEAP平台两种接口方法获取登录的操作员信息。

1)从坐席框架的共享变量获取:

通过此接口获取坐席登陆信息,请在坐席业务程序开发的时候引入坐席开发类库eap_agent_common.jar,该文件位于(openEAP)/eapserver/lib目录下。

打包发布时不需要将此jar一起打包到坐席业务程序中。

示例代码如下:

//import类来自eap_agent_common.jar

importcom.suntek.app.session.SessionRegister;

importcom.suntek.app.consts.CallConst;

Vectorv_AgentInfo=null;

Objecto=SessionRegister.getUserProperty(SessionRegister.USERTYPE_OPERATOR,

SessionRegister.getUserId(request,null),

CallConst.SESSION_AGENT_INFO);

if(o!

=null){

v_AgentInfo=(Vector)o;

StringagentId=(String)v_AgentInfo.elementAt

(1);//工号

StringagentName=(String)v_AgentInfo.elementAt

(2);//姓名

StringloginTime=(String)v_AgentInfo.elementAt(3);//登录时间

StringagentPwd=(String)v_AgentInfo.elementAt(4);//密码

StringagentSkill=(String)v_AgentInfo.elementAt(5);//职务102为班长

StringmacVol=(String)v_AgentInfo.elementAt(6);//Mac卡音量

StringqueueTips=(String)v_AgentInfo.elementAt(7);//排队提示标记

StringagentBureauid=(String)v_AgentInfo.elementAt(8);//企业编码3位

StringagentOrg=(String)v_AgentInfo.elementAt(9);//部门编码

StringentBriefName=(String)v_AgentInfo.elementAt(10);//企业简称

StringagentTele=(String)v_AgentInfo.elementAt(11);//话机号码

StringisMac=(String)v_AgentInfo.elementAt(13);//是否Mac话机

StringentCallNum=(String)v_AgentInfo.elementAt(15);//企业接入号码

}

 

2)从openEAP平台获取:

通过此接口获取坐席登陆信息,请在坐席业务程序开发的时候引入openEAP开发类库eap_core.jar和eap_structure.jar,该文件位于(openEAP)/eapserver/lib目录下。

坐席业务程序需要按openEAP的规范中的“Web统一登录认证”部分规范来编码。

打包发布时不需要将此jar一起打包到坐席业务程序中。

示例代码如下:

StringuserId="";

StringuserName="";

StringuserOrg="";

try{

userId=request.getUserPrincipal().getName();

FrameUserModelloginStaff=newFrameUserModel(userId);

userName=loginStaff.getUserName();

StringskillId=loginStaff.getExtendProperty("SKILLID");

Listl=loginStaff.getOwnerDepartment();

if(l!

=null||l.size()>0){

DepartmentModelstruct=(DepartmentModel)l.get(0);

userOrg=struct.getDepartmentName();

}

}

catch(Exceptione){}

3.1.2.获取来电客户相关信息

客户来电相关信息可以通过坐席框架的共享内存变量来获取。

方法如下:

1)呼叫相关默认变量

//import类来自eap_agent_common.jar

importcom.suntek.app.session.SessionRegister;

importcom.suntek.app.consts.CallConst;

StringuserId=SessionRegister.getUserId(request,null);

//呼叫的唯一标识,业务模块可以用此变量作业务操作的主键,

//可以通过此主键查找到相关呼叫信息

StringcallId=(String)SessionRegister.getCallProperty(userId,"CallID");

//计费编号

Stringbillid=(String)SessionRegister.getCallProperty(userId,CallConst.BILLID);

//主叫,被叫,原主叫,原被叫

Stringcaller=(String)SessionRegister.getCallProperty(userId,CallConst.CALLER);

Stringcalled=(String)SessionRegister.getCallProperty(userId,CallConst.CALLED);

Stringorgcaller=(String)SessionRegister.getCallProperty(userId,CallConst.ORG_CALLER);

Stringorgcalled=(String)SessionRegister.getCallProperty(userId,CallConst.ORG_CALLED);

//呼叫类型及名称

Stringcause=(String)SessionRegister.getCallProperty(userId,CallConst.CAUSE);

Stringcausename=(String)SessionRegister.getCallProperty(userId,CallConst.CAUSE_NAME);

//呼叫开始时间(YYYY-MM-DDHH:

mm:

ss格式)

StringcallbeginTime=(String)SessionRegister.getCallProperty(userId,“CallBeginTimeStamp”);

//呼叫开始时间与结束时间

StringcallbeginTime=(String)SessionRegister.getCallProperty(userId,“CONNECTED_TIME”);

StringcallendTime=(String)SessionRegister.getCallProperty(userId,“DISCONNECTED_TIME”);

2)IVR传给坐席的用户附加数据的获取

//用户附加数据,此串由IVR传送到坐席

StringuserData=(String)SessionRegister.getCallProperty(userId,CallConst.USER_DATA);

userData的格式为*key1=value1*key2=value2*…,请业务开发人员与ivr开发人员约定内容

可以在业务模块中通过key的名称直接获取其对应的值

Stringvalue=(String)SessionRegister.getCallProperty(userId,“KeyName”);

 

3.2.坐席业务模块前台操作(HTML/JavaScript)

坐席业务程序前台是指由IE执行的HTML页面或javascript代码等内容。

3.2.1.坐席框架界面说明

如上图所示,用户自定义的业务模块通过openEAP平台部署,和角色权限分配后,业务模块的功能菜单在菜单栏显示,而业务模块的操作界面在“业务操作区”展现。

坐席话路控件则加载在桢frame_cti中,业务模块可以通过top.frames[‘frame_cti’].控件名称的方式来访问。

3.2.2.frame_cti桢内提供的可访问对象

1)表单splogin提供的HTML元素

frame_cti桢内提供了一个form对象splogin可供业务模块访问。

其可访问的元素如下:

varmyFrame=top.frames['frame_cti']

//坐席员工号,姓名,坐席话机号码,呼叫的唯一标识

varagentID=myFrame.splogin.agentID.value;

varagentName=myFrame.splogin.agentName.value;

varagentNumber=myFrame.splogin.agentNumber.value;

varcallID=myFrame.splogin.CallID.value;

2)话路控件元素

//软话机控件,提供包括外呼,咨询,转移,挂机等话路操作接口,详细请参考《SoftPhone开发指南.doc》

myFrame.document.all.SPDLL

 

3.3.坐席业务模块中处理常用话路事件/消息

坐席框架中如果需要处理常用的话路事件或消息,其实现原理为:

用户自定义的模块在web应用加载的时候调用坐席接口,注册一个URL(可对应于一个Jsp页面),注册的jsp页面在坐席登录后,作为坐席框架总页面的一个子桢被加载。

当坐席框架收到各话路事件后,将回调该注册的URL中的指定的javascript方法,该URL中的javascript方法名称和参数固定。

实现则由用户自行开发。

请按如下步骤编码。

1.各业务模块中,如果需要处理话路事件/消息,请在web.xml中配置应用listener类,比如:

com.suntek.cc.app.xxxx

2.各业务模块自行实现listener类中的方法contextInitialized()和contextDestroyed(),listener类需要implementsServletContextListener

//在contextInitialized()中把业务模块中事件处理的URL注册进来

publicvoidcontextInitialized(ServletContextEventevent){

//注册全局URL,每个坐席员的页面均会加载

com.suntek.app.session.AppRegister.registAppEventHadleUrl("处理事件的URL");

//或注册URL时同时加入模块名,只有具有该模块菜单权限的坐席员的页面才会加载本URL,需要2.0#20070724或以后的坐席框架和openEAP2.11或以后版本支持。

com.suntek.app.session.AppRegister.registAppEventHadleUrl(moduleName+"^"+url);

}

//在contextDestroyed()中把业务模块中事件处理的URL移走

publicvoidcontextDestroyed(ServletContextEventevent){

//反注册某URL

com.suntek.app.session.AppRegister.unregistAppEventHadleUrl("处理事件的URL");

//或

com.suntek.app.session.AppRegister.unregistAppEventHadleUrl(moduleName+"^"+url);

}

 

3.各业务模块在处理事件/消息的URL中实现以下事件处理javascript脚本

4.坐席框架中将获取注册的URL,接收到事件/消息后分别调用各URL中的对应方法.

3.4.座席框架与IVR相关的相关约定

IVR转移到坐席,用户数据的格式请用*key1=value1*key2=value2*…,以便于坐席将相关数据load到内存中,供其它业务模块共享。

IVR转移到坐席或经IVR进行远端咨询后转移到坐席的时候,如果用户数据里含有*url=http:

//xxxx*target=yyyy*时,坐席会自动转移到该URL。

如果target=blank,则会将此URL以弹出窗口方式展示。

否则,将在坐席框架的主显示界面展示。

3.5.坐席控件提供TCP话务操作接口

坐席登录进入系统后,坐席控件会在坐席本机(localhost)开启TCP服务端口(端口号依坐席框架配置决定,假定为9083)提供Socket服务。

坐席控件作为Server端,第三方系统作为Client端,采用长连接方式。

您可以编写客户端Socket通讯程序,启动后连接到该坐席机的IP和9083端口,如果您的客户端程序跑在坐席机上,可以连接127.0.0.19083端口

客户端程序与Server连接之后,可以收到Server端的两个事件通知

1.电话接通事件通知

●坐席接通客户电话后,坐席会发消息给client程序。

格式为:

主叫,被叫,坐席号码,坐席工号,开始时间

说明:

包体为String型,由5个字段构成,字段之间用半角逗号分开

2.电话挂机事件通知

●坐席电话挂机后,坐席也会发消息给client程序。

格式为:

主叫,被叫,坐席号码,0,结束时间

说明:

包体为String型,由5个字段构成,字段之间用半角逗号分开

与上面接通事件接口不同的是:

第四个字段固定为0

客户端程序与Server连接之后,可以主动给Server端发送消息进行外呼,转移,咨询三个操作。

●外呼,转移,咨询三个接口所对应参数和格式如下:

外呼:

*Function=CallOut*Called=被叫号码*

转移:

*Function=TransferCall*Called=被叫号码*

咨询:

*Function=ConsultationCall*Called=被叫号码*

说明:

请按以上三个格式发送字符型请求包,您只需要替换被叫号码即可,不要漏掉前后的星号。

Server端如果返回字符型“OK”,表示接口收到的参数无误,并成功调用了相关的方法(外呼,转移,咨询)等。

如果返回为其它,表示失败,失败描述在返回串里。

如(受限号码,或被叫为空等)

3.6.坐席控件提供HTTP话务操作接口

坐席登录进入系统后,坐席控件会在坐席本机(localhost)开启HTTP服务端口(端口号8881)提供服务。

坐席控件作为Server端,第三方模块或网页作为Client端,发送HTTP请求。

客户端程序或网页可以向本机的8881端口发送http请求(直接request)进行外呼,转移,咨询三个操作。

●外呼,转移,咨询三个接口所对应URL如下:

外呼:

http:

//localhost:

8881/Action?

CS_task=MakeCall&Caller=123&Called=456&UserData=附加数据

转移:

http:

//localhost:

8881/Action?

CS_task=SingleStepTransferCall&Caller=123&Called=456&UserData=附加数据

咨询:

*http:

//localhost:

8881/Action?

CS_task=ConsultationCall&Caller=123&Called=456&UserData=附加数据

说明:

请按以上三个格式发送字符型请求包,您只需要替换被叫号码即可。

Server端如果返回HTTP包体内容为“OK”,表示已成功调用。

如果返回为其它,表示失败,失败描述在返回包里。

如(受限号码,或被叫为空等)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1