资源描述
UComm使用说明
EVENT说明
事件名称
作用
GetBill
获取话单
GetWake
获取叫醒状态
GetLeaveStatus
获取房态信息
为旧版本下位机程序保留的事件
GetLeaveStatusBCD
获取房态
ConnectStatus
获取交换机连接状态
GetTelStatus
获取话机端口状态
GetConsoleStatus
获取话务台状态
GetCCBStatusMod
获取CCB状态
GetConfirmStatus
获取座席认定状态(成功或失败)
ShowFlexCode
获取弹编—参看函数GetFlexCode
2011.01.08
收取话单:有新话单上传,会触发此事件
GetBill(int modNum,int sendPortNo,int recvPortNo,LPCSTR sendCode, LPCSTR sendDate, LPCSTR recvCode, long timeLong, int billType, int feeCode, int officeNo, int signal, int circuitGroup,int fwpj,int isunrecv)
参数说明
modNum 层号 0-7
sendPortNo 主叫端口号
recvPortNo 被叫端口号
sendCode 主叫号
sendDate 时间
recvCode 被叫号
timeLong 时长
billType 话单类型 (1 本局, 2 出局,3 入局,4 汇接)
feeCode 计费码 (通常是0)
officeNo 局向号
signal 信令点
circuitGroup 电路群号
fwpj 服务评价 需在参数设置中开启服务评价业务 2009.08.29新增
isunrecv 未接话单标识 2010.06.19新增 未接话单只有当交换机处于cti模式时才会产生
叫醒状态:有新叫醒状态上传,会触发此事件
GetWake(string telNo, int status, string firstTime, string secondTime)
telNo 电话号码
status 叫醒状态
firstTime 第一叫醒时间
secondTime 第二叫醒时间
注: 此事件开关由SetWakeStatusSwitch函数设定
房态:有新房态上传,触发此事件
GetLeaveStatusBCD(LPCSTR telNo, LPCSTR statusBCD)
telNo 电话号码
status 所拨号码(可接收0-9,*,#) 最长为8位
GetLeaveStatus(string telNo, int status)
telNo 电话号码 status 所拨号码 0-9 此事件已作废,只为旧版本的下位机程序保留
注: 此事件开关由SetLeaveSwich函数设定
连接状态:判断交换机连线与否,会触发此事件 (呼叫中心软件需用)
ConnectStatus(int modNum)
modNum 层号
注:调用connect函数后会触发此事件
分机状态:分机状态有变化,会触发此事件 (呼叫中心软件需用)
GetTelStatus(string telNo, string status)
telNo 电话号码
status 状态 包括(空闲,振铃,通话,摘机,忙音,主叫保持,被叫保持)
获取话务台状态
GetConsoleStatus(LPCSTR telNo, int status0, LPCSTR tel0, int status1, LPCSTR tel1, int status2, LPCSTR tel2, int status3, LPCSTR tel3, int status4, LPCSTR tel4, int status5, LPCSTR tel5, int status6, LPCSTR tel6, int status7, LPCSTR tel7, int consoleNo)
telNo 话务台电话号码
status0…. status7 队列0-7状态(空闲,等待,通话,保留,回振)
tel0…….tel7 队列0-队列7的来电号码
注:要接受此事件需定时调用ConsoleStatus函数
CCB状态:有新的CCB变化产生,会触发此事件。(每个ccb号表示一个呼叫进程,从0到1023循环,呼叫中心调度都通过该ccb号,来识别。) (呼叫中心软件需用)
GetCCBStatusNew(int modNum, int ccbNo, LPCSTR sendCode, LPCSTR status, LPCSTR recvCode, LPCSTR oriCode,int sendPort,int recvPort,LPCSTR statusRecv)
modNum 层号0-7
ccbNo ccb号
sendCode 主叫号
recvCode 被叫号
oriCode 原始主叫号
sendPort 主叫端口
recvPort 被叫端口
status 对于呼叫中心来说,最重要的状态是“入局呼叫起始”,表示外线已经打进电话,等待调度,这时需要分配座席。当“入局呼叫用户振铃”时表示分机已经振铃,“入局通话”表示分机正在通话。当“入局拆线”或者“ccb空闲时”,表示通话结束。另外,如果传上来的状态是“其它入局呼叫起始”,表示交换机没有工作在CTI状态,需要调用“StationUnknown”函数,交换机会自动处理。其他状态基本没有用到,红色标注的为可能需要用到的状态,主要状态列表如下:
CCB空闲";
CENTREX用户呼叫发起";
CENTREX用户字冠分析";
用户呼叫发起";
用户首号字冠分析";
接收用户出局后续号码";
弹编发现";
本局呼叫用户振铃";
本局通话";
本局拆线";
出局呼叫回铃音";
出局通话";
出局拆线";
入局呼叫起始";
其它入局呼叫起始";
CENTREX入局呼叫发起";
CENTREX入局字冠分析";
入局呼叫发起";
入局首号字冠分析";
接收汇接后续号码";
CENTREX入局引导语音";
CENTREX入局字冠分析";
CENTREX入局忙提示";
CENTREX入局空号提示";
CENTREX入局无应答提示";
入局字冠分析";
接收汇接后续号码";
入局忙提示";
入局空号提示";
入局无应答提示";
弹编发现";
入局呼叫用户振铃";
入局通话";
入局拆线";
汇接呼叫回铃音";
汇接通话";
汇接拆线";
汇接呼叫回铃音
注: 此事件开关由SetCCBSwitch函数设定
statusRecv 接收方状态: 2010.04.09新增
占用
发送号码
接收
通话
被叫拆线
正常挂机拆线
被叫忙拆线
被叫无应答拆线(PRI信令环境)
被叫缺席(PRI信令环境)
呼叫被拒绝(PRI信令环境)
被叫号码无效(PRI信令环境)
座席认定状态,当执行StationConfirm或者StationTrans命令对座席调度后,会触发该事件 (呼叫中心软件需用)
GetConfirmStatus(int ccbNo, int status)
ccbNo ccb号
status 状态 (10 呼叫成功,11 呼叫失败,PBX无有效资源或线路阻塞,需要重新调度,14 呼叫无效,该ccb号是无效的,通常是对方已经挂机)
函数名称
作用
Start
启动与交换机的通讯
ReStart
重启与交换机的通讯
Stop
结束与交换机通讯
Connect
测试与交换机连接是否正常
SetCtiOnline
设置交换机为CTI模式
SetLamp
设置留言灯
SetWake
设置叫醒服务
SetPara
设置参数
SetParaTel
设置参数
Console
话务台控制命令
ConsoleStatus
提取话务台状态
Dial
话机操作
Flash
话机操作
SetBillSwitch
话单事件开关
SetRoomStatusSwitch
房态事件开关
SetWakeStatusSwitch
叫醒状态事件开关
SetCCBSwitch
CCB状态事件开关
SetLeaveSwich
房态事件开关
SetPortSwitch
话机端口状态事件开关
StationSendWaitMusic
如果座席全忙放等待音乐
StationSendMusic
听等待音乐
StationSendTone
发送提示语音
StationConfirm
坐席认定
StationTrans
呼叫转移
StationCut
呼叫拆除
StationUnknown
呼叫未知
StationRefuse
呼叫拒绝
PickUpByCCB
按ccb号来提取通话
2010.05.11
IVRVoicePlay
IVR语音播放函数
2010.08.05
IVRVoiceRecord
IVR语音录入函数
2010.08.05
PlayNumVoice
播报数字语音函数
2010.08.05
ClearRecvCode
清空ccb被叫号码函数
2010.09.29
ModifyCCBRecvCode
修改ccb被叫号码函数
2010.10.13
SetFlexCode
根据端口设置弹编
2011.01.08
GetFlexCode
根据端口上载弹编
2011.01.08
所有有返回值的函数,成功执行均返回 1
函数说明:
int Start(LPCSTR remoteHostName, int remotePort, int localPort, int modNum); (呼叫中心软件需用)
启动服务
remoteHostName 交换机IP地址
remotePort 交换机端口号,默认是9499
localPort 本机端口号,在9510-9515之间,任选一不冲突的就可以。
modNum 层号 0-7
int ReStart(LPCSTR remoteHostName, int remotePort, int localPort, int modNum); (呼叫中心软件需用)
重启动服务
remoteHostName 交换机IP地址
remotePort 交换机端口号,默认是9499
localPort 本机端口号,在9510-9515之间,任选一不冲突的就可以。
modNum 层号 0-7
void Stop();(呼叫中心软件需用)
停止服务
int SetLevel(LPCSTR telNo, int officeNo, int rightLevel);
设置分机等级
telNo 电话号码
officNo 局向号 (0-7)
rightLevel 局向内等级*256+局向外等级
int SetLamp(LPCSTR telNo, int status); //0,关,1,开
设置留言灯
telNo 电话号码
status 0表示关,1表示开
int SetWake(LPCSTR telNo, LPCSTR firstTime, LPCSTR secondTime);
设置叫醒
telNo 电话号码
firstTime 第一叫醒时间 格式必须是HHMM
secondTime 第二叫醒时间
int Dial(int ctiType, LPCSTR sendCode, LPCSTR recvCode);
话机操作
sendCode 主叫号
recvCode 被叫号
ctiType (16 拨打或转接电话, 18 强拆, 19 强插, 20 监听, 22 代接电话 ,49 远端插入,50远端监听,51,远端三方通话)
int Flash(int ctiType, LPCSTR sendCode);
话机操作
sendCode 主叫号
ctiType (21 呼叫保留, 23 拍叉, 24 三方会议 ,25 挂断,32 耳麦话机应答,34 本机建立TSP三方会议)
int Connect(int modNum); (呼叫中心软件需用)
连接交换机,如果交换机通讯正常,会触发ConnectStatus事件。
modNum 层号,一般是0
此函数需定时(10s)调用,以检测与交换机间的通讯是否通畅,若连续6次调用为接收到ConnectStatus事件,则需要重启连接
void SetBillSwitch(int isOpen);
开启或关闭话单事件,如果isOpen为1,则有新话单来,会触发GetBill事件
isOpne 1 打开 0 关闭
void SetWakeStatusSwitch(int isOpen);
开启或关闭叫醒事件,如果isOpen为1,则有新叫醒状态上来,会触发GetWake事件
isOpne 1 打开 0 关闭
void SetCCBSwitch(int isOpen); (呼叫中心软件需用)
开启或关闭CCB事件,如果isOpen为1,则有新CCB来,会触发GetCCBStatus事件
isOpne 1 打开 0 关闭
void SetLeaveSwich(int isOpen);
开启或关闭房态事件,如果isOpen为1,则有新的状态来,会触发GetLeaveStatusBCD事件
isOpne 1 打开 0 关闭
void SetPortSwitch(int isOpen); (呼叫中心软件需用)
开启或关闭分机状态事件,如果isOpen为1,则有新的状态来,会触发GetTelStatus事件
isOpne 1 打开 0 关闭
void StationSendWaitMusic(int ccbNo); (呼叫中心软件需用)
如果坐席全忙放等待音乐
void StationSendMusic(int ccbNo); (呼叫中心软件需用)
听等待音乐
void StationSendTone(int ccbNo); (呼叫中心软件需用)
发送提示语音
void StationConfirm(int ccbNo, LPCSTR telNo); (呼叫中心软件需用)
坐席认定
telNo 待认定座席
void StationTrans(int ccbNo, LPCSTR telNo); (呼叫中心软件需用)
呼叫转移
telNo 待认定座席
void StationCut(int ccbNo); (呼叫中心软件需用)
呼叫拆除
void StationRefuse(int ccbNo); (呼叫中心软件需用)
呼叫拒绝,一般用在拒绝黑名单用户
void StationUnknown(int ccbNo); (呼叫中心软件需用)
呼叫未知,如果交换机非处在CTI工作状态,那么有入局呼叫发起时,要调用此函数
void SetCtiOnline(); (呼叫中心软件需用)
设置cti在线状态,必须隔五秒定时发送,把交换机设置为CTI工作状态。
int Console(int ctiType, LPCSTR sendCode, int queue);
设置控制台命令
ctiType 1 提取 2 保留
sendCode 话务台号码
queue 队列号 0-7
int ConsoleStatus(int ctiType, LPCSTR telNo, int status);
提取控制台状态
sendCode 话务台号码
int SetPara(int type, LPCSTR telNo, int status);
设置参数
ctiType 类型 96-设置免打扰开关 97-设置离位转移开关 98-设置遇忙转移开关 99-设置无应答转移开关 100-设置热线电话开关 104-设置联动开关
telNo 要设置的分机号码
status 1开启服务,0关闭服务
int SetParaTel (int ctiType, LPCSTR telNo, LPCSTR paraTelNo);
设置参数
ctiType 类型 64-设置离位转移电话号码 65-设置遇忙转移电话号码 66-设置无应答转移电话号码 67-设置热线电话号码 76-设置联动号码
telNo 要设置的分机号码
paraTelNo 要设置的离位等号码
当设置号码时 SetPara 和 SetParaTel 两个要依次调用,先打开服务,在设置服务号码。
电话会议相关函数
说明:一块电话会议板可以发起一个电话会议,如果需要同时进行多个电话会议,请增加电话会议板!
groupNo 从 0 开始,根据电话会议板数量递增
每发起一个电话会议要对应一个virtualNo(虚拟号码)
int MeetingSet(int type, LPCSTR virtualNo, LPCSTR telNo, int groupNo)
加入会议
type 权限 64 发言 65 旁听 66 踢出会议
virtualNo 虚拟号码
telNo 要加入会议的电话号码
groupNo从 0 开始,根据电话会议板数量递增
int MeetingStop(LPCSTR virtualNo, int groupNo)
停止会议
virtualNo 虚拟号码
groupNo从 0 开始,根据电话会议板数量递增
int PickUpByCCB(int modNum,int ccbNo,LPCSTR sendCode)
本机按CCB号提取保留的电话 函数
modNum 层号 ccbNo ccb号 sendCode 本机号码
int IVRVoicePlay(int modNum,int ccbNo, int VoiceNum)
IVR语音播放函数
modNum 层号 ccbNo ccb号 VoiceNum ivr语音段号 有效范围 1-100
int IVRVoiceRecord(int VoiceNum, int SectionNum, LPCSTR VoiceStr)
IVR语音录入函数
VoiceNum ivr语音段号 有效范围 1-100
SectionNum 该语音段的区块号 标准值1-7 如果是最后一段则要加128,如果是试听下载则再加64
VoiceStr 转换成16进制后的文本
举例: 比如要下载 “IVR语音测试”
Int VoiceNum = 1;
byte[] ResultBytes;//最大值是64字节,大于64字节的要增加SectionNum,另外调用一次该函数
ResultBytes = System.Text.Encoding.GetEncoding("GB2312").GetBytes(“IVR语音测试”);
string VoiceStr ="";
for(int j=0;j< ResultBytes.Length;j++)
{
VoiceStr += ResultBytes[(i-1)*64+j].ToString("X2");
}
Int SectionNum = 1;
SectionNum = 128+1;//因为这是最后一段,如果是试听下载则SectionNum = 128+64+1;
//函数调用
IVRVoiceRecord(VoiceNum, SectionNum, VoiceStr);
Int PlayNumVoice(int modNum, int ccbNo, LPCSTR NumStr)
播报数字语音函数
modNum 层号 ccbNo ccb号 NumStr数字文本 长度最大64代表32个字
支持的数字如下:
数字语音内容:编码如下
30à零 31à一 32à二 33à三
34à四 35à五 36à六 37à七
38à八 39à九 3Aà点 3Bà分
3Cà元 3Dà毛 3Eà请 3Fà交
40à十 41à百 42à千 43à话
44à费 45à号 46à月 47à,(代表停顿)
48à您 49à好 4Aà分 4Bà机
4Cà挂 4Dà谢 4Eà忙 4Fà,(代表停顿)
比如 您好,谢谢 对应的NumStr为 4849474D4D
Int ClearRecvCode(int modNum, int ccbNo)
清空ccb被叫号码函数
modNum 层号 ccbNo ccb号
int ModifyCCBRecvCode(int modNum, int ccbNo, LPCSTR telNo)
修改ccb被叫号码函数
modNum 层号 ccbNo ccb号 telNo 要变成的号码
int SetFlexCode(int modNum, int portNum, LPCSTR FlexCode1, LPCSTR FlexCode2, LPCSTR FlexCode3, LPCSTR FlexCode4)
根据端口设置弹编
modNum 层号 portNum 端口号
FlexCode1 第一弹编 FlexCode2 第二弹编 FlexCode3 第三弹编 FlexCode4 第四弹编
Int GetFlexCode(int modNum, int portNo)
根据端口上载弹编
modNum 层号 portNum 端口号
调用完此函数后会触发事件ShowFlexCode
ShowFlexCode(int modNum, int portNum, LPCSTR FlexCode1, LPCSTR FlexCode2, LPCSTR FlexCode3, LPCSTR FlexCode4)
ccb状态是我们交换机自有的一个状态,用来监视来去电状态,ccb号是从0-1023循环的,我们交换机最大有8层,每层对应1024条ccb状态,
简易的callcenter流程
外线呼入
Ccb事件里获取到
“入局呼叫起始”状态, 假设此条ccb对应的层号为0,ccb号为1,放入来电队列A,
决策
转给坐席A
转给坐席B
转给坐席C
从队列A中清除
放音乐等待
拒绝
2011-04-08 zq 修订
展开阅读全文