CTI控件接口文档Word下载.docx
- 文档编号:22120600
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:45
- 大小:89.54KB
CTI控件接口文档Word下载.docx
《CTI控件接口文档Word下载.docx》由会员分享,可在线阅读,更多相关《CTI控件接口文档Word下载.docx(45页珍藏版)》请在冰豆网上搜索。
催挂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
在通话事件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
在下列事件中增加参数(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号
通话保持
cmdCallHold(IDAsInteger)
通话保持。
例如,当分机106(ID=5)与分机108(ID=7)正在通话时,要106发起通话保持操作,106将进入拨号状态,108将听到保持音,需要执行的指令:
ctisrv1.cmdCallHold(5)
若108要招执行通话保持,106将听到保持音,需要执行的指令:
ctisrv1.cmdCallHold(7)
需要保持的线路ID号
拨号
cmdDial(IDAsInteger,phoneAsString)
摘机后进行拨号操作。
例如,当分机106(ID=5)摘机后,若要拨打分机108(ID=7),需要发送下列指令:
ctisrv1.cmdDial(5,”108”),通知交换机5号线路用户需要拨打108
发起拨号的线路ID号
获取线路状态
cmdGetTisStatus(IDAsInteger)
获取线路状态。
状态见附录。
当状态返回时,产生相应的事件:
outOfService维护忙事件
idle空闲事件
connected通话事件
hurryHangUp催挂事件
onCall回铃
这些事件在线路状态变化时,如用户摘机,拨号,挂机等均会自动产生。
当有来电或外拨时,也会产生来电显示或去电显示事件。
见下面描述。
需要查询状态的线路ID号
取指定线路状态
cmdGetOtherIDTisStatu(byvalIDAsInteger,byvaluserTypeAsInteger,byvaldstIDAsInteger)
。
用于获取指定线路的状态信息(状态,分机号,用户名)
当指定线路的信息返回时,产生otherIDTisInfoArrival事件,见该事件描述
与cmdGetTisStatu不同之处是前者只能取自已的状态,而后者可取任意线路
发起该命令的线路号
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号
获取分机用户信息
cmdQueryUserInfo(IDAsInteger)
获取分机用户基本信息。
如要查询103(ID=2)的基本信息,可调用ctiSrv1.cmdQueryUserInfo
(2),执行结果会产生baseInfoArrival事件,返回值请参见该事件描述。
需要查询线路ID号
设置分机服务等级
cmdSetSrvCls(ByValIDAsInteger,ByValsetIDAsInteger,ByValsetSrvClsAsInteger)
设围分机的服务级别,不同的服务级别具有不同的权限。
根据服务级别可以限制声讯台、长途(国际、国内)等拨号限制,系统支持最多32个服务等级
设置服务级别的ID
setID:
被设置服务级别的通道号
serSrvCls:
要设置的服务级别(0-31)
软摘机
cmdOffHook(ByValIDAsInteger)
软摘机。
该操作相当于拿起电话手柄。
如102(ID=1)需要进行软件拨打105(ID=4),需要调用如下指令:
ctisrv1.cmdOffHook
(1)
ctisrv1.cmdDial(1,”105”);
当105摘机后,102拿起话就可与105通话
需要软摘机的线路ID号
软挂机
cmdOnHook(ByValIDAsInteger)
软挂机。
当102调用ctisrv1.cmdOnHook
(1)后,便断开与105的通话。
需要软挂机的线路ID号
用户自定义功能
rCommand(IDAsInteger,cmdReq()AsByte)
自定义接口,需要交换机支持用户自定义的功能。
需要实现该接口功能线路号ID
无
IVR播放请求
cmdIVRPlayReq(ByValIDAsInteger,ByValvoiceIDAsString)
要求交换机为用户播放指定语音段,前提条件是外线必须接通电脑话务员。
电脑话务员ID
voiceID:
需要播放的语音段,目前支持最大32段语音提示,但总的播放时长不能超过1分钟。
IVR电脑话务员拆线
cmdIVRRemoveLine(ByValIDAsInteger)
由电脑话务员发起的拆线请求。
IVR停止播放语音提示
cmdIVRStopPlay(ByValIDAsInteger)
由电脑话务员发起的停止播放请求。
IVR呼叫转移
cmdIVRCallDivert(ByValIDAsInteger,ByValphoneAsString)
由电脑话务员发起的呼叫转移。
当转移成时产生IVRCallDivOK事件,转移失败时产生IVRCallDivErr
Phone:
要转移的电话号码
morningCall设置morningCall叫醒时间
cmdSetMorningCall(ByValIDAsInteger,ByValuserTypeAsInteger,ByValdstIDAsInteger,ByValmorningCallTimeAsString)
设置指定分机的叫醒时间。
该功能可以设置任意一部分机的叫醒时间.当ID与dstID相同时表示设置自己的叫醒时间
发起设置morningCall的分机所属通道号,范围为0-1023。
发起设置的ID所属的用户类型,参见附录。
被设置成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相同时表示查询自己的叫醒时间
发起查询的分机所属通道号,范围为0-1023。
发起查询的ID所属的用户类型,参见附录。
要查询的目标通道号,范围为0-1023
例如,假设前台用105分机(对应的通道号为4)登录管理软件,要查询103分机(相应的通道号为2)是否设置了morningCall,调用如下:
cmdGetMorningCall(4,1,2)
当查询成功后,会产生一个morningCallGetArrival事件,见该事件的描述。
该事件错误代码描述:
morningCall取消morningCall设置
cmdCancelMorningCall(ByValIDAsInteger,ByValuserTypeAsInteger,ByValdstIDAsInteger)
取消指定分机的叫醒设置。
该功能可以取消任意一部分机的叫醒设置,.当ID与dstID相同时表示取消自己的叫醒设置
发起取消动作的分机所属通道号,范围为0-1023。
发起取消的ID所属的用户类型,参见附录。
要取消的目标通道号,范围为0-1023
例如,假设前台用105分机(对应的通道号为4)登录管理软件,要取消103分机(相应的通道号为2)的morningCall设置,调用如下:
cmdCancelMorningCall(4,1,2)
当查询成功后,会产生一个morningCallCancelArrival事件,见该事件的描述。
StartUDPlisten
方法名称:
UDPStart()
功能说明:
从指定端口启动UDP功能,当有数据到达时产生UDPDataArrival事件,收到的数据包括下列数据包:
1:
用户登录数据包
2:
线路状态变化包
参数:
None
ReturnValue:
None.
StopUDPlisten
从指定端口停止UDP功能,执行该方法后将不能收到下列数据包:
免打扰
cmdSetNoDisturb(ByValIDAsInteger,ByValsetFlagAsBoolean)
设置/取消免打扰功能。
需要设置/取消免打扰功能的通道号,
setFlag:
True---设置免打扰FALSE—取消免打扰
事件
登录失败
事件名称:
loginErr(ByValIDAsInteger,ByValerrCodeAsString,ByValerrDescAsString)
当登录失败时产生该事件。
暂是不用
errCode:
登录失败的错误代码
errDesc:
登录失败的原因
登录成功
loginOK(ByValIDAsInteger)
当登录成功时产生该事件。
忙提示
busyPrompt(ByValIDAsInteger,ByValuserTypeAsInteger,ByValassIDAsInteger,ByValassPhoneAsString,ByValassUserNameAsString)
当处于忙状态时,若收到呼叫,将产生该事件。
利用该事件可以知道当自己正在通话或正在拨打电话时,不会漏掉任何一个来电。
同时主叫方也会收到一个催挂事件(hurryHangUp),从事件参数中可以知道被叫的分机号及用户名。
处于忙状态的线路ID
assID:
相关线路ID
assPhone:
相关号码(主叫方电话号码)
assUserName:
相关用户名称(主叫方名称,若交换机中没有设置用户名,该名称为空)
被叫振铃
calledRing(ByValIDAsInteger,ByValuserTypeAsInteger,ByValassIDAsInteger,ByValassUserTypeAsInteger,ByValassPhoneAsString,ByValassUserNameAsString,byvalmixDataasinteger)
当被叫振铃时产生该事件
被叫方线路ID
userTyp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CTI 控件 接口 文档