CTI控件接口文档.docx

上传人:b****7 文档编号:8984463 上传时间:2023-02-02 格式:DOCX 页数:45 大小:89.54KB
下载 相关 举报
CTI控件接口文档.docx_第1页
第1页 / 共45页
CTI控件接口文档.docx_第2页
第2页 / 共45页
CTI控件接口文档.docx_第3页
第3页 / 共45页
CTI控件接口文档.docx_第4页
第4页 / 共45页
CTI控件接口文档.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

CTI控件接口文档.docx

《CTI控件接口文档.docx》由会员分享,可在线阅读,更多相关《CTI控件接口文档.docx(45页珍藏版)》请在冰豆网上搜索。

CTI控件接口文档.docx

CTI控件接口文档

修改历史3

一、概述4

二、集成方案4

二、控件接口定义6

属性6

方法7

登录TDMx交换机7

退出TDMx交换机7

呼叫取消7

呼叫转移8

通话保持8

拨号8

获取线路状态9

取指定线路状态9

会议9

获取分机用户信息10

设置分机服务等级10

软摘机11

软挂机11

用户自定义功能11

IVR播放请求12

IVR电脑话务员拆线12

IVR停止播放语音提示12

IVR呼叫转移12

morningCall设置morningCall叫醒时间13

morningCall查询morningCall叫醒时间13

morningCall取消morningCall设置14

StartUDPlisten14

StopUDPlisten15

免打扰15

事件15

登录失败15

登录成功16

忙提示16

被叫振铃16

分机用户信息17

通话17

拨号17

催挂18

空闲18

回铃19

回叫振铃19

维护忙20

来电显示20

去电显示21

程序错误21

通讯错误22

指定的线路状态信息22

用户自定义功能执行失败22

用户自定义功能执行成功23

IVR呼叫进入23

IVR用户拨号23

IVR用户拆线24

IVR播放结束24

IVR回叫24

IVR呼叫转移成功25

IVR呼叫转移失败25

中继入中继分配25

中继出中继分配26

中继出中继呼叫26

中继接收DTMF26

morningCall设置事件27

morningCall查询事件27

morningCall取消事件27

UDPDataArriVal28

转移提示28

转移更新29

三、用户类型表:

30

四、功能码表31

五、Delphi中控件导入31

六、MixData域位定义32

TDMX交换机CTI控件接口文档(初稿)

修改历史

修改历史

日期

修改内容

修改人

2006-6-20

新增IVR接口

2006-6-24

新增软摘机、软挂机

2006-6-26

设置分机服务级别

2006-7-20

新增取其它线路状态

2006-7-27

新增中继状态事件:

inTrunkAllocated,outTrunkAllocated,outTrunkCall,trunkDTMFReceive

2006-7-27

在通话事件connected中新增呼入呼出参数(IOFlag)判断,在事件idle,outOfService,calledRing,backRing,dial,onCall,hurryHangUp,connected,phoneDisplay,dialedDisplay中新增相关用户的用户类型参数assUserType。

2006-8-15

新增控件的登录类型6(以客户身份直接登录交换机)

2006-8-30

新增morningcall的设置,查询,取消功能

2006-12-27

新增UDP状态广播包

属性:

UDPLocalPort(3.1),

UDPRemoteHost(3.1),

UDPRemotePort(3.1)

方法:

UDPStart(3.2.22)

UDPStop(3.2.33)

事件:

UDPDataArrival(3.3.4)

2007-1-17

增加两个事件:

CallDivertUpdate和CallDivertPrompt

2007-1-17

在下列事件中增加参数(mixData)

CalledRing

Connected

Dial

hurryHangUp

idle

onCall

backRing

outOfService

注:

蓝色部分为新增部分,红色部分为修改部分

一、概述

TDMX交换机提供服务器版和单机版CTI接口,该接口采用了COM组件技术,第三方开发商利用这个组件可以方便地进行二次开发。

该接口操作简单,使用方便,缩短了CTI应用的开发周期,大大提高了CTI应用二次开发效率。

每条线路的状态变化均以事件的方式通知应用层,以实现对每条线路进行监控。

该接口WINDOWS操作系统或微软的.net架构下能很好的使用,可以跟VB、VC、Delphi、PB、LINUX,UNIX(SCO,HP)等开发工具进行完美的结合。

本文档适用于将OCX控件嵌入到已有的应用平台中实现CTI各种应用的第三方开发商。

二、集成方案

对使用OCX控件进行二次开发的用户,提供下列方案供参考:

二、控件接口定义

在控件中频繁使用的线路ID,其范围从0到1023,如onHook(ID)事件的ID为0表示接在第一个接口上的用户已挂机。

该控件的属性、方法及事件中的ID均是从0开始。

属性

在执行控件的login方法登录TDMx交换机之前,需要设置下面这几个属性值:

接口名称

类型

描述

remoteHostIPAsString

属性

交换机IP地址,默认为192.168.0.235

remotePortAsLong

属性

交换机Port,默认为5003

userNameAsString

属性

登录交换机的管理员用户名,默认为admin

passwordAsString

属性

登录交换机的管理员密码,默认为admin

loginTypeasinteger

属性

登录交换机类型,目前支持三种登录类型

5--接管IVR(适用于以服务器方式登录交换机)

15--不接管IVR(适用于服务器以方式登录交换)

6—直接登录交换机(适用于客户端直接登录交换机)

UDPLocalPort

属性

TDMxUDP端口号.默认值为5009.

UDPRemoteHost

方法

交换机IP地址,默认值为192.168.0.235

方法

登录TDMx交换机

方法名称:

Login(sUserNameAsString,sPasswordAsString)

功能说明:

当设置好上面的登录参数时,调用此方法登录TDMx交换机。

若登录成功,产生loginOK事件;若登录失败产生loginErr事件。

loginOK和loginErr事件的说明请参见各自的描述。

参数说明:

sUserName:

登录交换机的管理员用户名,由属性userName指定

sPassword:

登录交换机的管理员密码,由属性password指定

返回值:

退出TDMx交换机

方法名称:

logout()

功能说明:

当关闭应用程序或需要退出TDMx交换机的登录时调用。

一旦调用logout(),应用程序将无法接收交换机发送的数据。

若需要接收交换机的数据,必须以管理员身份重新登录。

参数说明:

返回值:

呼叫取消

方法名称:

cmdCallCancel(IDAsInteger)

功能说明:

呼叫取消,重新进入拨号状态。

例如,当用分机107(ID=6)呼叫分机号码为108(ID=7)的用户时,执行cmdCallCancel(6)后将取消对108的呼叫,重新进入拨号状态。

若双方已通话,执行cmdCallCancel(6)后将取消与108的通话,107会重新进入拨号状态。

参数说明:

ID:

发起呼叫取消的线路ID号。

返回值:

呼叫转移

方法名称:

cmdCallDivert(IDAsInteger)

功能说明:

呼叫转移。

要完成呼叫转移操作,需要与cmdDial方法结合使用。

例如,当分机106(ID=5)收到呼叫并摘机通话时,若需要将来电转移到分机108,需要先执行下列指令ctisrv1.cmdCallDivert(5),延时1秒钟再执行指令ctisrv1.cmdDial(5,”108”)。

参数说明:

ID:

发起呼叫转移的线路ID号

返回值:

通话保持

方法名称:

cmdCallHold(IDAsInteger)

功能说明:

通话保持。

例如,当分机106(ID=5)与分机108(ID=7)正在通话时,要106发起通话保持操作,106将进入拨号状态,108将听到保持音,需要执行的指令:

ctisrv1.cmdCallHold(5)

若108要招执行通话保持,106将听到保持音,需要执行的指令:

ctisrv1.cmdCallHold(7)

参数说明:

ID:

需要保持的线路ID号

返回值:

拨号

方法名称:

cmdDial(IDAsInteger,phoneAsString)

功能说明:

摘机后进行拨号操作。

例如,当分机106(ID=5)摘机后,若要拨打分机108(ID=7),需要发送下列指令:

ctisrv1.cmdDial(5,”108”),通知交换机5号线路用户需要拨打108

参数说明:

ID:

发起拨号的线路ID号

返回值:

获取线路状态

方法名称:

cmdGetTisStatus(IDAsInteger)

功能说明:

获取线路状态。

状态见附录。

当状态返回时,产生相应的事件:

outOfService维护忙事件

idle空闲事件

connected通话事件

hurryHangUp催挂事件

onCall回铃

这些事件在线路状态变化时,如用户摘机,拨号,挂机等均会自动产生。

当有来电或外拨时,也会产生来电显示或去电显示事件。

见下面描述。

参数说明:

ID:

需要查询状态的线路ID号

返回值:

取指定线路状态

方法名称:

cmdGetOtherIDTisStatu(byvalIDAsInteger,byvaluserTypeAsInteger,byvaldstIDAsInteger)

功能说明:

用于获取指定线路的状态信息(状态,分机号,用户名)

当指定线路的信息返回时,产生otherIDTisInfoArrival事件,见该事件描述

与cmdGetTisStatu不同之处是前者只能取自已的状态,而后者可取任意线路

参数说明:

ID:

发起该命令的线路号

userType:

发起者的用户类型

dstID:

需要获取的线路ID

返回值:

会议

方法名称:

cmdIntoConference(IDAsInteger)

功能说明:

创建或加入会议。

(1)创建会议流程:

现由用户102(ID=1)发起创建一个会议,将用户103(ID=2),104(ID=3)加入到会议中,需要按以下流程操作:

a、102(ID=1)摘机(或软摘机,调用ctiSrv1.cmdOffHook

(1),具体见后面描述)

b、102调用ctisrv1.cmdDial(1,”103”)方法拨打分机103,

c、103摘机,102与103处于通话中

d、102调用ctiSrv1.cmdCallHold

(1)方法发保持操作以后,102进入拨号状态,103听保持音

e、102再调用ctisrv1.cmdDial(1,”104”)拨打分机104

f、104摘机后,102与104处于通话中

g、102调用ctisrv1.cmdIntoConference

(1)方法发起会议操作以后,102,103,104便处于会议中,可进行三方通话。

(2)加入会议流程:

在上面的会议已存在的情况下,若要将用户105(ID=4)拉入会议,需按如下流程操作:

(假设由102(ID=1)邀请105加入会议)

a、102调用ctiSrv1.cmdCallHold

(1)发保持

b、102调用ctisrv1.cmdDial(1,”105”)拨打分机103

c、105摘机后,102与105处于通话中。

c、102调用ctisrv1.cmdIntoConference

(1)方法发会议操作后,105被拉入会议。

102,103,104,105便处于会议中,现在变成了四方会议,可进行四方通话。

如此类推,可将任意多个用户加入会议中,从而轻松实现多方通话。

参数说明:

ID:

会议发起者的线路ID号

返回值:

获取分机用户信息

方法名称:

cmdQueryUserInfo(IDAsInteger)

功能说明:

获取分机用户基本信息。

如要查询103(ID=2)的基本信息,可调用ctiSrv1.cmdQueryUserInfo

(2),执行结果会产生baseInfoArrival事件,返回值请参见该事件描述。

参数说明:

ID:

需要查询线路ID号

返回值:

设置分机服务等级

方法名称:

cmdSetSrvCls(ByValIDAsInteger,ByValsetIDAsInteger,ByValsetSrvClsAsInteger)

功能说明:

设围分机的服务级别,不同的服务级别具有不同的权限。

根据服务级别可以限制声讯台、长途(国际、国内)等拨号限制,系统支持最多32个服务等级

参数说明:

ID:

设置服务级别的ID

setID:

被设置服务级别的通道号

serSrvCls:

要设置的服务级别(0-31)

返回值:

软摘机

方法名称:

cmdOffHook(ByValIDAsInteger)

功能说明:

软摘机。

该操作相当于拿起电话手柄。

如102(ID=1)需要进行软件拨打105(ID=4),需要调用如下指令:

ctisrv1.cmdOffHook

(1)

ctisrv1.cmdDial(1,”105”);

当105摘机后,102拿起话就可与105通话

参数说明:

ID:

需要软摘机的线路ID号

返回值:

软挂机

方法名称:

cmdOnHook(ByValIDAsInteger)

功能说明:

软挂机。

如102(ID=1)需要进行软件拨打105(ID=4),需要调用如下指令:

ctisrv1.cmdOffHook

(1)

ctisrv1.cmdDial(1,”105”);

当105摘机后,102拿起话就可与105通话

当102调用ctisrv1.cmdOnHook

(1)后,便断开与105的通话。

参数说明:

ID:

需要软挂机的线路ID号

返回值:

用户自定义功能

方法名称:

rCommand(IDAsInteger,cmdReq()AsByte)

功能说明:

自定义接口,需要交换机支持用户自定义的功能。

参数说明:

ID:

需要实现该接口功能线路号ID

返回值:

IVR播放请求

方法名称:

cmdIVRPlayReq(ByValIDAsInteger,ByValvoiceIDAsString)

功能说明:

要求交换机为用户播放指定语音段,前提条件是外线必须接通电脑话务员。

参数说明:

ID:

电脑话务员ID

voiceID:

需要播放的语音段,目前支持最大32段语音提示,但总的播放时长不能超过1分钟。

返回值:

IVR电脑话务员拆线

方法名称:

cmdIVRRemoveLine(ByValIDAsInteger)

功能说明:

由电脑话务员发起的拆线请求。

参数说明:

ID:

电脑话务员ID

返回值:

IVR停止播放语音提示

方法名称:

cmdIVRStopPlay(ByValIDAsInteger)

功能说明:

由电脑话务员发起的停止播放请求。

参数说明:

ID:

电脑话务员ID

返回值:

IVR呼叫转移

方法名称:

cmdIVRCallDivert(ByValIDAsInteger,ByValphoneAsString)

功能说明:

由电脑话务员发起的呼叫转移。

当转移成时产生IVRCallDivOK事件,转移失败时产生IVRCallDivErr

参数说明:

ID:

电脑话务员ID

Phone:

要转移的电话号码

返回值:

morningCall设置morningCall叫醒时间

方法名称:

cmdSetMorningCall(ByValIDAsInteger,ByValuserTypeAsInteger,ByValdstIDAsInteger,ByValmorningCallTimeAsString)

功能说明:

设置指定分机的叫醒时间。

该功能可以设置任意一部分机的叫醒时间.当ID与dstID相同时表示设置自己的叫醒时间

参数说明:

ID:

发起设置morningCall的分机所属通道号,范围为0-1023。

userType:

发起设置的ID所属的用户类型,参见附录。

dstID:

被设置成morningCall的目标通道号,范围为0-1023

morningCallTime:

叫醒时间,长度必须为14位,按年月日时分秒的顺序,格式为“YYYYMMDDHHMMSS”。

例如,假设前台用105分机(对应的通道号为4)登录管理软件,想将103分机(相应的通道号为2)的叫醒时间设置为2006年8月30日早上7:

30,调用如下:

cmdSetMorningCall(4,1,2,“20060830073000”)

如果以管理员身份登录,参数ID可任意指定。

当设置成功后,会产生一个morningCallSetArrival事件,见该事件的描述。

若时间格式不对,将产生errorOccur事件。

错误代码描述:

2301:

源ID超界

2302:

目标dstID超界

2303:

叫醒时间含非法字符或格式不正确或长度非法!

返回值:

morningCall查询morningCall叫醒时间

方法名称:

cmdGetMorningCall(ByValIDAsInteger,ByValuserTypeAsInteger,ByValdstIDAsInteger)

功能说明:

查询指定分机的叫醒时间。

该功能可以查询任意一部分机的叫醒时间.当ID与dstID相同时表示查询自己的叫醒时间

参数说明:

ID:

发起查询的分机所属通道号,范围为0-1023。

userType:

发起查询的ID所属的用户类型,参见附录。

dstID:

要查询的目标通道号,范围为0-1023

例如,假设前台用105分机(对应的通道号为4)登录管理软件,要查询103分机(相应的通道号为2)是否设置了morningCall,调用如下:

cmdGetMorningCall(4,1,2)

如果以管理员身份登录,参数ID可任意指定。

当查询成功后,会产生一个morningCallGetArrival事件,见该事件的描述。

该事件错误代码描述:

2301:

源ID超界

2302:

目标dstID超界

返回值:

morningCall取消morningCall设置

方法名称:

cmdCancelMorningCall(ByValIDAsInteger,ByValuserTypeAsInteger,ByValdstIDAsInteger)

功能说明:

取消指定分机的叫醒设置。

该功能可以取消任意一部分机的叫醒设置,.当ID与dstID相同时表示取消自己的叫醒设置

参数说明:

ID:

发起取消动作的分机所属通道号,范围为0-1023。

userType:

发起取消的ID所属的用户类型,参见附录。

dstID:

要取消的目标通道号,范围为0-1023

例如,假设前台用105分机(对应的通道号为4)登录管理软件,要取消103分机(相应的通道号为2)的morningCall设置,调用如下:

cmdCancelMorningCall(4,1,2)

如果以管理员身份登录,参数ID可任意指定。

当查询成功后,会产生一个morningCallCancelArrival事件,见该事件的描述。

该事件错误代码描述:

2301:

源ID超界

2302:

目标dstID超界

返回值:

StartUDPlisten

方法名称:

UDPStart()

功能说明:

从指定端口启动UDP功能,当有数据到达时产生UDPDataArrival事件,收到的数据包括下列数据包:

1:

用户登录数据包

2:

线路状态变化包

参数:

None

ReturnValue:

None.

StopUDPlisten

方法名称:

UDPStart()

功能说明:

从指定端口停止UDP功能,执行该方法后将不能收到下列数据包:

1:

用户登录数据包

2:

线路状态变化包

参数:

None

ReturnValue:

None.

免打扰

方法名称:

cmdSetNoDisturb(ByValIDAsInteger,ByValsetFlagAsBoolean)

功能说明:

设置/取消免打扰功能。

参数说明:

ID:

需要设置/取消免打扰功能的通道号,

setFlag:

True---设置免打扰FALSE—取消免打扰

返回值:

事件

登录失败

事件名称:

loginErr(ByValIDAsInteger,ByValerrCodeAsString,ByValerrDescAsString)

功能说明:

当登录失败时产生该事件。

参数说明:

ID:

暂是不用

errCode:

登录失败的错误代码

errDesc:

登录失败的原因

返回值:

登录成功

事件名称:

loginOK(ByValIDAsInteger)

功能说明:

当登录成功时产生该事件。

参数说明:

ID:

暂是不用

返回值:

忙提示

事件名称:

busyPrompt(ByValIDAsInteger,ByValuserTypeAsInteger,ByValassIDAsInteger,ByValassPhoneAsString,ByValassUserNameAsString)

功能说明:

当处于忙状态时,若收到呼叫,将产生该事件。

利用该事件可以知道当自己正在通话或正在拨打电话时,不会漏掉任何一个来电。

同时主叫方也会收到一个催挂事件(hurryHangUp),从事件参数中可以知道被叫的分机号及用户名。

参数说明:

ID:

处于忙状态的线路ID

assID:

相关线路ID

assPhone:

相关号码(主叫方电话号码)

assUserName:

相关用户名称(主叫方名称,若交换机中没有设置用户名,该名称为空)

返回值:

被叫振铃

事件名称:

calledRing(ByValIDAsInteger,ByValuserTypeAsInteger,ByValassIDAsInteger,ByValassUserTypeAsInteger,ByValassPhoneAsString,ByValassUserNameAsString,byvalmixDataasinteger)

功能说明:

当被叫振铃时产生该事件

参数说明:

ID:

被叫方线路ID

userTyp

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

当前位置:首页 > 高等教育 > 农学

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

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