应用开发手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用开发手册
深圳友邻通讯设备有限公司
目录
一.录音服务系统介绍 (3)
第一节功能简介 (3)
第二节结构概述 (3)
二.前台开发控件安装 (5)
第一节前台开发控件说明 (5)
第二节前台开发控件注册 (5)
第三节服务器DCOM配置 (6)
三.功能实现 (9)
第一节初始化设置...................................................。
(9)
第二节录音控制 (9)
第三节查询 (11)
第四节调听录音 (11)
四.附录 (12)
附录一AgentBx.OCX接口 (15)
附录二CTIBtn.OCX接口 (21)
一.录音服务系统介绍
第一节功能简介
DVS-数据语音同步系统作为一种提高客户服务中心服务质量的工具,主要具备以下一些功能:
●通话录音
对话务员与客户通话的全过程进行录音:通话开始时,由TCM通过接口,发出录音开始命令,通知DVS开始录音;通话结束时,由TCM通知DVS停止录音,
同时DVS把呼叫信息保存到通话记录中,作为日后检索该次录音的条件。
●录音回放
前台应用通过接口,向DVS提出查询请求,服务器返回符合条件的记录。
同时可以通过软电话拨号到DVS服务器的放音分机,实现录音的回放。
●数据保存
DVS提供18/36/72G的硬盘作为语音数据的暂时存储空间。
如果用户认为有必要保存语音数据,可以通过我方提供的备份应用程序备份到磁带。
第二节结构概述
DVS的逻辑结构图如下:
其中各个部分的功能描述如下:
录音控制服务器(DvsRecordServer.exe):
DVS的总控单元,其功能是与TCM进行消息通讯,控制其他单元实现录音流程的
控制和前台应用放音过程中DVS放音分机的摘挂机通知。
屏捕控制服务器(DvsScreenServer.exe):
管理与前台应用之间的连接和放音控制。
DVS录音控制程序(DvsRecordClient.exe):
通过COM接口操作语音信号卡实现录音的操作。
放音服务器(DvsPlayServer.exe):
通过COM接口操作语音信号卡实现放音的操作。
二.前台开发控件安装
第一节前台开发控件说明
DVS录音服务系统给前台查询放音提供了开发接口。
开发接口是AgentBx.ocx和CTIBtn.ocx,使用以上两个OCX控件所需要的相关支持文件有:
AgentBx.OCX 需要注册
CTIBtn.OCX 需要注册
AgentCommProj.exe 需要注册
PrjServer.exe 需要注册
Midas.Dll 拷至系统system32目录下
(c:\windows\system32或c:\winnt\system32)
(相应的接口文档请看附录)
AgentBx.OCX会通过AgentCommProj.exe与DVS服务器通讯,AgentBx.OCX也直接与录音服务器上的PrjServer.exe连接,PrjServer.exe访问数据库,把查询结果返回到AgentBx.OCX。
当需要放音时,AgentBx.OCX会通过AgentCommProj.exe访问录音服务系统请求放音。
CTIBtn.OCX是前台给DVS服务器发CTI消息的的控件,DVS服务器所有的录放音动作都由CTI消息来起动。
Midas.dll是前台访问PrjServer.exe所需要的库,在C:\电话录音系统\AgentReg下有,直接拷贝到前台system32目录下就行。
如果前台的开发环境是VB,Delphi,C++ Builder时,以上两个控件就可以满足前台的查询和放音。
如果前台开发环境是Power Builder的情况下还需要
AgentOcxExe.exe(需要注册)
AgentEOcxXcontrol.ocx(需要注册)
两个文件,开发接口是AgentEOcxXcontrol.ocx。
AgentBx.ocx不再作为接口被使用在开发环境中,但作为支持文件必须存在。
在开发环境中使用AgentEOcxXcontrol.ocx。
CtiBtn.ocx使用上无区别。
第二节前台开发控件注册
第一种方法: 直接在前台电脑上安装前台应用系统,安装后前台开发和使用所需得接口文件以及相关的支持文件都会存放在所需目录下,并自动注册。
第二种方法: 在录音服务系统安装完成后,在C:\电话录音系统\AgentReg下就有AgentBx.OCX、CTIBtn.OCX和AgentCommProj.exe三个文件,如果需要
AgentEOcxXControl.ocx的话我们会另外提供。
注册这三个接口,先把它们拷贝到前台电脑上,如:C:\Agent\下,然后注册。
对于AgentCommProj.exe来说,只要运行一遍再关闭就已经注册成功了。
对于AgentBx.OCX和CTIBtn.OCX则在运行栏上运行"RegSvr32 C:\Agent\AgentBx.ocx”如果系统提示注册成功即可。
前台还需要运行一下PrjServer.exe,AgentBx.OCX才能调用PrjServer.exe。
PrjServer.exe 在服务器的“C:\电话录音系统\ServerReg”下。
所以也需要把PrjServer.exe拷贝到前台电脑上,并运行一遍再关闭。
第三节服务器DCOM配置
首先将winnt下的Guest用户打开。
AgentBx.OCX与PrjServer.exe之间是通过DCOM建立连接的,所以在服务器端必须进行DCOM配置。
在服务器端的运行栏内输入DCOMCNFG,运行后就会去现下图,PrjServer.exe对应的对象是AgentQuery Object,所以我们需要对AgentQuery Object进行配置。
双击AgentQueryObject就会出现配置界面如下图:
首先配置安全性,点击选中安全性页面,选择使用自定义访问权限,然后编辑访问权限。
点击“编辑”后,会出现权限编辑窗口,把原有
的用户都删除掉,然后添加图中所示的六个用户或用户组就可以了。
同理,选择“使用自定义启动权限”,并编辑它,编辑的结果与上图一样。
“使用自定义配置权限”不做改动。
如果前台系统就在服务器本机上,就不需要以上的DCOM配置。
三.功能实现
第一节初始化设置
1.连接Dvs系统:
录音,放音都是由DVS录音服务系统来控制完成的,但录音服
务系统什么时候开始录音、放音,什么时候停止录音、停止放音完全由CTI的电话消息来控制。
在做DEMO的时候,没有CTI,我们用CTIBtn.OCX来给DVS服务器发CTI消息。
功能要实现首先要保证前台机器与DVS服务器之间的网络是通的,而且它们的IP地址在同一网段。
实现数据查询,只需要连接到服务器并知道数据服务器名即可。
而要实现放音除了连接到服务器外,还需要前台登录,也就是把本地分机号传给服务器。
首先把前台机器上的AgentCommProj.exe调起,然后通过AgentCommProj.exe去访问DVS服务器。
首先将AgentBX.OCX的AgentName置为空,将AgentConn置为True,就可以将AgentCommProj.exe调起:
AgentName:=’’;
AgentConn:=True;
其次要与Dvs系统连接,需要调用AgentBx.SetConn方法,设置了DVS服务器的地址和端口号(6677555)后。
SetConn方法
AgentBx.SetConn(“192.1.1.1”,6677555);
等待5秒钟左右,OnServerConn事件触发表示和Dvs系统连接成功。
AgentCommProj.exe(Agent通讯站)应用程序被调起,这时在任务栏的右边多了一个图标,图标为一台电脑,当连接服务器成功后,这个图标就变成了两台重叠的电脑。
反过来,这一变化也可以说明前台与DVS连接成功。
前台登录通过LogIn(AgentID,Extention:WideString)方法,其中AgentID是人员的登录标识,可以任意指定。
而Extention(分机号)必须是前台话务员所使用的分机。
登录后等待OnLogInSucc事件,事件触发表示前台登录成功。
OnBreak事件触发,表示和Dvs系统连接断开,此时AgentCommProj.exe会自动尝试从新和Dvs建立连接,并在连接后从新自动以上一次登陆参数登陆。
第二节查询
要查询数据,必须和录音服务器上的应用服务程序PrjServer.exe,建立连接。
AgentBx.OCX的ComputerName赋为录音服务器的机器名,再将Connected置为True,就可以和PrjServer.exe连接:
puterName := “RecordServer”;
AgentBx.Connected := True;
查询录音信息(记录)通过AgentBX.OCX的QuerySysRecord方法来实现,该方法的参数是查询的条件,请参考附录,其中UniqueGuid是每个记录的唯一标识,而UniqueId是与业务表的关联,在没有业务存在的情况下,我们无须使用该参数,赋空值即可。
同理,
WorkType也赋空值。
该方法使用结束后,查询的数据都到了前台机器的内存中,查询的返回值就是查询得到的记录数。
我们需要使用QuerySsyDateField (RecordSysNo,RecordSysIndex:integer)方法来读取每个记录的每个字段值,这些值都以字符串的形式返回。
第三节调听录音
DVS服务器放音需要四个条件,
一,登陆成功。
二,查出了相关纪录。
三,拨通放音分机。
四,通知DVS系统,放音建立。
以上条件都成功,就可以调用AgentBX.OCX的play方法来播放。
在play之前,我们要先为第三个条件做好准备。
放音分机和听音分机都可以由CTI 消息通知DVS服务器,但播放的记录我们就自己选择。
首先,使用AgentBX.OCX的LoadSelectFile(RecordSysNo,RecordWorkTypeNo:integer;PlayV oice,PlayData:WordBool)方法来Load一个记录对相应的文件,其中RecordSysNo就是QuerySysRecord查出的纪录的索引号,从1开始到QuerySysRecord的返回值之间的值。
而RecordWorkTypeNo是用于业务的,不需要时置为0,PlayVoice是指播放语音,置为True,PlayData是指播放屏捕数据,这项功能还没有开通,所以置为False:
LoadSelectFile(n,0,True,False); //播放第一n次记录
这时,我们已经load了一个文件,然后用话务员的分机拨放音分机号,振铃一声后DVS服务器将该分机摘机。
如果安装了DVS的CTI监视器,就可以用Agentbx的Play方法放音。
如果没有安装CTI监视器,就必须通过CTIbtn.ocx向DVS服务器发放音建立请求,发送成功后才可以放音。
放音请求的发送,见第四节录放音控制。
第四节录放音控制
录放音请求的发送是由CTIbtn.ocx负责完成。
1.Ctibtn.ocx与DVS系统的连接
将Ctibtn的地址设置为DVS服务器的地址,设置端口为9090,用Open方法进行连接:
CTIBtn.Address := “192.1.1.1”;
Port:=9090;//默认值
CTIBtn .Open;
Open后等待OnConnect事件表示连接成功。
2.控制消息的发送
连接成功后可以发送控制消息,所有的控制消息的发送都是通过SendCTIMsg方法完成。
CTIBTn.SendCTIMsg(editUnique.text,
CTIEvent.ItemIndex+1,
InorOut.ItemIndex,
StrtoInt(EditAcdNumber.Text),
StrtoInt(EditDNIS.text),
EditAgent.Text,
EditExtension.text,
EditCalling.text,
EditCalled.text,
EditTransId.text);
详细的参数说明请看附录二。
放音时,电话拨通后发放音建立消息,电话挂机后发放音结束消息。
发放音消息时,CallID(主叫)为话务员分机号,CalledID(被叫)为放音分机号,Extention(分机)为话务员分机号,这三项必须填写正确,其余参数根据参数意义和实际需要而填写。
录音时,电话接通后发送录音消息,主叫,被叫按实际情况赋值,分机是要录音的话务员的分机号。
这三项必须填写正确,其余参数根据参数意义和实际需要而填写。
在CTIBtn.OCX使用完后,我们可以使用它的Close方法把它关闭。
四.附录
附录一AgentBx.OCX接口
前台接口控件:(AgentBx.ocx)
属性
●property ComputerName:WideString
说明:数据库服务器的机器名;
●property Connected :WordBool
说明:标志数据库服务器是否连接成功,当由false置为true时,会根据ComputerName连接数据库服务器。
●property AgentName :WideString
说明:Agnet通讯站机器名,一般为空(默认为本机)。
●property AgentConn : WordBool
说明:标志是否连接到Agnet通讯站,当由false置为true时,会主动连接。
●property HaveLogIn : WordBool
说明:标志话务员是否在DVS服务器登录。
(只读)
●property FileLength : integer(只读)
说明:当前播放语音长度。
●property Position : integer(只读)
说明:当前播放语音位置(距起始位置秒数)。
●property StepLen : integer
说明:步进(退)的单位长度(秒)。
默认为10秒。
方法
●function QuerySysMultiCondition(const FirstTime,
LastTime,MinTime,MaxTime,WorkType,Uniqueid,Callid,CalledId,Agent,Extention,Acd,InorOut:WideString):integer;
说明:按参数给出的条件进行综合查询,某参数为空时该条件无效参数:
FirstTime : 记录的开始时间大于该时间。
LastTime : 记录的开始时间小于该时间。
MinTime : 记录的通话时间大于该时间。
MaxTime : 记录的通话时间小于该时间。
WorkType:业务类型。
Uniqueid: 唯一标识。
(业务系统产生)
Callid:主叫号。
CalledId:被叫号。
Agent:话务员标识。
Acd:Acd组号。
InorOut:呼入呼出标志。
返回值:查询到的记录数
function QuerySysRecord(const Lsh, UniqueGuid, UniqueId,FirstTime,LastTime,MinTime,MaxTime,WorkType,Uniqueid,Callid,CalledId,Agent,Extention,Acd,InorOut:WideString):integer;
说明:按参数给出的条件进行综合查询,某参数为空时该条件无效
参数:
Lsh : 流水号
UniqueGuid : 记录标识(录音系统产生)
UniqueId : 记录标识(业务系统产生)
FirstTime : 记录的开始时间大于该时间。
LastTime : 记录的开始时间小于该时间。
MinTime : 记录的通话时间大于该时间。
MaxTime : 记录的通话时间小于该时间。
WorkType:业务类型。
Callid:主叫号。
CalledId:被叫号。
Agent:话务员标识。
Acd:Acd组号。
InorOut:呼入呼出标志。
返回值:查询到的记录数
function QuerySysDataField( RecordSysNo,RecordSysIndex:integer ) : WideString;
说明:从缓冲区中取出查询结果
参数:
RecordSysNo: 要取第几条记录。
RecordSysIndex: 取记录中的第几项内容
返回值:所取记录的项的内容。
记录的结构如下:
record
流水号0
唯一标识(录音系统产生) 1
唯一标识(业务系统产生)2
话务员 3
主叫号码 4
被叫号码 5
分机号 6
转接前的ID 7
转接后的ID 8
开始时间9
结束时间10
通话时间11
ACD号码12
网络识别码13
呼叫标志14
End ;
●function QueryWorkTypeRecord(const SysRecordNo:
integer):integer;
说明:按查询出的记录号查询子业务。
参数:
RecordSysNo: 查询出的第几条记录。
返回值:整数类型,表示查询到的子业务记录数
●function QueryWorkTypeDataField( RecordNo ,RecordIndex:
integer ) : WideString;
说明:从缓冲区中取出子业务查询结果
参数:
RecordWorkType: 要取第几条子业务记录。
RecordWorkTypeIndex: 取记录中的第几项内容,每条记录有8项
返回值:所取记录的项的内容。
子业务记录的结构如下:
record
唯一标识 1
唯一标识子号 2
手机号码 3
业务类型 4
业务说明 5
其他数据 6
工作时间7
End ;
●function QueryTransf (RecordSysNo : Integer) : integer ; 说明:以所选记录号在上一查询结果中的序号为参数,查询与其有转接关系的记录(靠UniqueId关联)。
参数:
RecordSysNo: 所选记录号在上一查询结果中的序号,从1开始。
返回值:查询到的记录数
●function QuerySysTransFDataField( RecordNo,RecordIndex:
integer ) : WideString;
说明:当进行查转接操作后,从缓冲区中取出查询结果,
RecordSysNo: 要取第几条记录。
RecordSysIndex: 取记录中的第几项内容返回值:所取记录的项的内容。
记录的结构如下:
record
流水号0
唯一标识(录音系统产生) 1
唯一标识(业务系统产生)2
话务员 3
主叫号码 4
被叫号码 5
分机号 6
转接前的ID 7
转接后的ID 8
开始时间9
结束时间10
通话时间11
ACD号码12
网络识别码13
呼叫标志14
●function GetRecordData(const Tablepar : integer; out Data:
OleVariant) : WordBool ;
说明:取查询结果(Delphi专用)。
参数:
Tablepar : 取数据参数(1:取主记录; 2:取子业务记录)。
data:数据。
(需要付给ClientDataSet.Data)
返回值:操作是否成功。
成功为True。
●function SaveWorkTypeData(const Uniqueid,UniqueIdChild,
CallId,WorkType,Explain,ortherdata:WideString) : WordBool ;
说明:存子业务记录。
参数:
Uniqueid: 唯一标识。
UniqueIdChild:唯一标识子号。
CallId:手机号。
WorkType:业务类型。
Explain:业务类型说明。
Ortherdata:其他业务数据。
返回值:操作是否成功。
成功为True。
●function SaveUniqueId(const Uniqueid:WideString) :
WordBool ;
说明:保存由业务系统产生的唯一标识。
参数:
Uniqueid: 唯一标识。
返回值:操作是否成功。
成功为True。
●Procedure LogIn (const AgentID ,Extention :WideString);说明:登陆函数,调用该函数用来在DVS服务器上登陆。
参数:
AgentID:登陆标识,用于标识登陆者。
Extention:分机号,指登陆机器所在位置的分机号。
●Procedure LogOut;
说明:退录,用于向DVS服务器发出退录消息。
●Procedure SetConn(const Address: WideString; Port:
integer);
说明:设置Agent通讯站与DVS服务器连接的IP地址和端口号。
参数:
Address:DVS服务器的IP地址。
Port:端口号(默认为:6677555),-1为取默认值。
●Function LoadSelectFile(RecordSysNo,RecordWorkTypeNo :
integer;
PlayVoice,PlayData : WordBool):WordBool;
说明:装载需要播放的文件。
参数:
RecordSysNo:选中的记录号。
RecordWorkTypeNo:子业务号。
PlayVoice:是否播放文件。
(目前填true)
PlayData:是否播放数据文件。
(目前填false)
返回值:装载成功为True,否则为False。
●procedure PlayFile;
说明:播放装载的文件。
(第一次调用前必须先调用LoadSelectFile)
●procedure PlayWorkType;
说明:播放子业务(必须先调用LoadSelectFile)。
●procedure Pause;
说明:暂停播放。
●procedure StepPre;
说明:步进。
●procedure StepBack;
说明:步退。
●Procedure PlayLocation(Location: Integer); 说明:指定播放位置播放。
参数:
Location:播放位置(距起始位置的秒数)。
●procedure StopPlay;
说明:停止播放。
●procedure EndPlay;
说明:停止播放。
(服务器会释放该通道)
●function GetLastErr: WideString;
说明:返回错误信息。
返回值:
返回错误信息。
事件
●property OnServerConn:TNotifyEvent;
说明:与DVS服务器建立连接;
●property OnServerBreak:TNotifyEvent;
说明:与DVS服务器连接断开;
●property OnLogInSucc:TNotifyEvent;
说明:登录成功;
●property OnPhoneEvent:TAgentXOnPhoneEvent;
说明:电话事件;
Type TAgentXOnPhoneEvent = procedure(Sender:Tobject;
out Event: Integer) of object;
参数:PhoneEvent:
电话开始:1;
电话结束:-1;
●property OnVoiceSucc:TNotifyEvent;
说明:放音成功;
●property OnVoiceFail:TAgentXOnVoiceFail;
说明:放音失败;
Type TAgentXOnVoiceFail = procedure(Sender: TObject;
out Flag: Integer) of object;
参数:Flag:
放音失败:1;
无语音文件:-1;
●property OnStaChange:TAgentXOnStaChange
说明:播放状态改变;
Type TAgentXOnStaChange = procedure(Sender: TObject;
out FromSta: Integer; out ToSta: Integer) of object;
参数:FromSta:改变前的状态;
ToSta:改变后的状态;
状态标志:
播放:101;
暂停:102;
停止:103;
前台接口控件:(AgentBx.ocx)的使用说明:
说明:AgentBx控件是提供给前台查询录音信息并播放录音文件
在使用AgentBx控件之前请保正以下三点:
1.当前Client端的计算机与DVS数据库服务器在同一子网内
(如:DVS数据库服务器的IP地址为:135.20.22.131
子网掩码为:255.255.255.224
则Client端的计算机的IP地址为:135.20.22.128--135.20.22.159
子网掩码为:255.255.255.224 )就能够保证快速在DVS数据库服务器到查询录音信息。
2. 运行程序 AgentCommProj.EXE 在系统中注册(不必每次使
用之前都进行注册,只有当 AgentCommProj.EXE 的存放位
置改变了,才必须重新注册)。
3. 计算机启动时要登录到网络中
要正确使用AgentBx控件查询到录音信息并能够正确播放查询到的录音文件请按以下步骤操作:
第一步:设置DVS数据库服务器信息
ComputerName: 数据库服务器的机器名;
Connected:标志是否连接到数据库服务器,当
由False置为True时,会主动连接
当以上属性设置好后进行下一步
第二步:连接DVS服务器
将属性Connected 附值为true,控件会根据第一步设置好的ComputerName属性连接数据库服务器。
第三步:登录DVS服务器
1 将属性AgentName附值为空、属性AgentConn附值为
True。
2 调用方法:SetAgentConn(const Address: WideString;
Port:integer);
来设置Agent通讯站与DVS服务器连接的IP地址和端口
号,且自动与服务器进行连接。
其中:
Address:DVS服务器的IP地址。
Port:端口号(默认为:6677555),-1为取默认值。
等待OnServerConn事件触发。
3 调用方法:LogIn (const AgentID ,Extention :
WideString);
来在DVS服务器上登录。
(建议在OnServerConn
事件中调用此方法)
其中:
AgentID:登录标识,用于标识登录者。
Extention:分机号,指登录机器所在位置的分机
号
登录成功属性HaveLogIn 将为True。
第四步:查询录音文件信息
1查询录音文件信息
调用函数QuerySysMultiCondition (const StartTime,
EndTime,MinTime,
MaxTime,
WorkType,Uniqueid,
Callid,CalledId,
Agent,Extention,Acd,
InorOut,DeviceTable:
WideString):integer;
来查询录音文件信息,其中参数为查询的条件,某参数为
空时该条件无效
其中:
StartTime : 记录的开始录音时间大于该时间。
EndTime : 记录的开始录音时间小于该时间。
MinTime : 记录的通话时间大于该时间。
MaxTime : 记录的通话时间小于该时间。
WorkType:业务类型。
Uniqueid: 唯一标识。
//CallID
Callid:主叫号。
CalledId:被叫号。
Agent:话务员标识。
Extention:分机号。
Acd:Acd组号。
InorOut:呼入呼出标志。
DeviceTable:备份设备表。
(查询备份记录用)
函数查询的返回值为符合调用时设定的条件查询到的记录
数(即录音文件数).
2当调用函数QuerySysMultiCondition后,就可调用函
数
QuerySysDataField ( RecordSysNo,
RecordSysIndex:integer ) : WideString;
来获得查询到的录音信息记录。
其中:RecordSysNo 要取查询到的录音信息中第
几条记录,
RecordSysIndex 取RecordSysNo所指定
的录音信息记录中的第几项内容,
每条记录有13项.
第五步:播放录音文件
1调用函数LoadSelectFile(RecordSysNo,
RecordWorkTypeNo : integer;
PlayVoice,PlayData :
WordBool):WordBool;
来装载查询到的记录中记录号为RecordSysNo的录
音文件。
其中:
RecordSysNo:选中的记录号。
RecordWorkTypeNo:子业务号。
////添0
PlayVoice:是否播放文件。
(目前填True)
PlayData:是否播放数据文件。
(目前填False)
函数LoadSelectFile的返回值为True表示装载成功,False表示装载失败。
2当调用函数LoadSelectFile成功后,就可调用方法PlayFile来播放LoadSelectFile函数装载的录
音文件。
在录音文件播放过程中,可以调用方法:Pause、StopPlay、StepPre、StepBack来控制播放。
当调用方法PlayFile播放录音文件成功后将会触发事件OnVoiceSucc,如果失败将会触发事
件OnVoiceFail。
在播放录音文件过程中,如果调用方法:Pause、StopPlay、StepPre、StepBack
改变了播放状态将会触发事件OnStaChange
在播放录音文件过程中如果OnServerBreak 事件产生就将不能够再进行放音。
第六步:退录DVS数据库服务器
调用过程:LogOut从DVS数据库服务器退录;退录成功属性HaveLogIn 将为False。
第七步:断开与DVS数据库服务器的连接
将属性Connected 附值为False,控件将会自动与DVS 数据库服务器断开连接.。
附录二CTIBtn.OCX接口
CTI控件:(CTIBx.ocx)
属性
●property Connected:boolean
说明:是否连接到服务器;
●property Area:string
说明:局号。
●property Address:String
说明:服务器IP。
●property Port: string
说明:服务器端口号。
方法
●Procedure Open;
说明:连接服务器。
●Procedure Close;
说明:关闭连接。
●Function SendCTIMsg(const Unique: String;
Event,In_Out,ACDNumber,DNIS: Integer;
const
Agent,Extension,Calling,Called,TransID: String):Boolean; 说明:发送CTI命令。
参数:
Unique:惟一标示。
Event:事件类型。
1 ; 开始
2 ; 结束
3 ; 保持
4 ; 继续
5 ; 转接
6 ; 放音建立
7 ; 放音结束
In_Out : 呼入呼出标志
Time : 时间
ACDNumber : ACD Number
DNIS : 网络识别码
Agent : 话务员ID
Extension : 分机号码
Calling : 主叫号码
Called : 被叫号码
TransID : 表示转接号码或第三方码
返回值:发送成功为True,否则为False。
事件
●property OnConnect:TComStaEvent;
说明:与DVS服务器建立连接;
●property OnBreak:TNotifyEvent;
说明:与DVS服务器连接断开;
●property Onclose:TNotifyEvent;
说明:关闭连接;
●property OnFailure:TNotifyEvent;
说明:发送失败;
CTI控件:(CTIBx.ocx)的使用说明:
CTI控件是录音控制控件,根据其属性设置连接到录音服务器并控制录音。
控制录音:
第一步:
属性(Address):附为录音服务器的IP地址;可读写属性。
属性(Port):为与录音服务器通讯的端口,通常情况不附值;可
读写属性。
属性(Connected):标志是否与录音服务器连接(TRUE 为已经与
录音服务器连接,FALSE 为没有与录音服务器
连接)。
只读属性
第二步:
在属性Address与属性Port附为正确值后就可以调用方法Open:来连接录音服务器,当调用方法Open后检查属性Connected,如果属性Connected为TRUE则表示已经与录音服务器连接上,在与录音服务器连接上后,事件OnConnect也将会触发如果属性Connected为FALSE则表示未能够与录音服务器连接
上,此时就有可能是属性Address与或者是录音服务器未启动与其他物理连接的问题。
当调用方法后属性Connected为TRUE则可以进行下面一步:
第三步:
调用函数SendCTIMsg(const Unique: String;
Event,In_Out,ACDNumber,DNIS: Integer; const Agent,Extension,Calling,Called,TransID: String):Boolean;
发送CTI命令给录音服务器控制录音。
方法中的参数表示意义如下:
Unique:惟一标示。
//在此表示CALLID
Event:事件类型。
//表示控制录音服务器的命令类型
1 ; 开始录音
2 ; 结束录音
3 ; 保持录音
4 ; 继续录音
5 ; 转接
6 ; 放音建立
7 ; 放音结束
In_Out : 呼入呼出标志 //表示分机号码表示的当前录音设备上的呼叫是
ACDNumber : ACD Number
DNIS : 网络识别码
Agent : 话务员ID
Extension : 分机号码 //需要录音的分机号码
Calling : 主叫号码
Called : 被叫号码
TransID : 表示转接号码或第三方码
如果函数SendCTIMsg调用成功则返回值为TRUE;如果返回值为FALSE则表示CTI命令发送失败,此时事件OnFailure也将会触发。
当不再控制录音后就可以进行下一步:
第四步:
调用方法Close 关闭与录音服务器的连接,当正确关闭与录音服务器的连接后将会触发事件Onclose,而且属性Connected也为FALSE。
*** 补充:事件OnBreak是在与录音服务器异常断开连接后触发的。