转接坐席。该标签包含的动作是排队、持续坐席。
标签用法
<object name="test" classid="method://function/agentqueue">
<param name="skill" expr="1"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="pri" value="3"/>
<param name="queuetimeout" expr="15"/>
<param name="virtualcenter" expr="1"/>
<filled>
<prompt>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</prompt>
</filled>
</object>
标签用法
<object name="test" classid="method://function/agentqueue">
<param name="skill" expr="1"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="pri" value="3"/>
<param name="queuetimeout" expr="15"/>
<param name="virtualcenter" expr="1"/>
<filled>
<prompt>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</prompt>
</filled>
</object>
<object name="test" classid="method://cmcc/telephoneist/call">
<param name="skill" expr="1"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="pri" value="3"/>
<param name="queuetimeout" expr="15"/>
<param name="virtualcenter" expr="1"/>
<filled>
<prompt>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</prompt>
</filled>
</object>
<param name="skill" expr="1"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="pri" value="3"/>
<param name="queuetimeout" expr="15"/>
<param name="virtualcenter" expr="1"/>
<filled>
<prompt>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</prompt>
</filled>
</object>
属性
属性名 说明
name 对象名称
classid method://function/agentqueue(D)
method://cmcc/telephoneist/call(ca)
expr JavaScript表达式,其值是该元素变量名的初始值。如该表达式结果值不为JavaScript的undefined,该元素将不被执行。缺省值是JavaScript的undefined。
cond JavaScript表达式。只有当其结果值为boolean true,元素才被执行,否则不被执行。缺省时为true。
fetchhint 值为prefetch或safe。当值为prefetch,声音文件在使用前预先提取;当值为safe,声音文件在需要时才提取。
name 对象名称
classid method://function/agentqueue(D)
method://cmcc/telephoneist/call(ca)
expr JavaScript表达式,其值是该元素变量名的初始值。如该表达式结果值不为JavaScript的undefined,该元素将不被执行。缺省值是JavaScript的undefined。
cond JavaScript表达式。只有当其结果值为boolean true,元素才被执行,否则不被执行。缺省时为true。
fetchhint 值为prefetch或safe。当值为prefetch,声音文件在使用前预先提取;当值为safe,声音文件在需要时才提取。
参数
参数名 说明
skill 坐席技能组。必须在skill或随路数据中给出。
agentNumber 坐席工号。可以不填。
aai 主叫号码
connecttimeout 排队成功后,等待坐席回应的最大时长
queuetimeout 最大的排队等待时长
callData 排队时传送给坐席的随路数据,最大长度为1024字节
waitingAudio 排队过程中的等待音,只能是audio类型的语音;排队结束,转接坐席前会终止此放音。默认是ipfile://wait.wav.(OP)
audioRepeate 排队音重复播放的次数。默认为5.业务应根据具体排队音的长度设置此值,以保证在排队结束前,一直能播放排队音。(OP)
virtualcenter 虚拟中心好。
pri 排队优先级。(只支持窄带)
skill 坐席技能组。必须在skill或随路数据中给出。
agentNumber 坐席工号。可以不填。
aai 主叫号码
connecttimeout 排队成功后,等待坐席回应的最大时长
queuetimeout 最大的排队等待时长
callData 排队时传送给坐席的随路数据,最大长度为1024字节
waitingAudio 排队过程中的等待音,只能是audio类型的语音;排队结束,转接坐席前会终止此放音。默认是ipfile://wait.wav.(OP)
audioRepeate 排队音重复播放的次数。默认为5.业务应根据具体排队音的长度设置此值,以保证在排队结束前,一直能播放排队音。(OP)
virtualcenter 虚拟中心好。
pri 排队优先级。(只支持窄带)
返回值
通过"name"属性来接受返回值。
转座席分为3个阶段:排队阶段、接续坐席阶段、通话以及通话结束阶段。
如果排队失败,object标签会有以下的返回值(表明失败的原因):
返回值 说明
queue_timeout
OPR_FAILURE(ca) 排队失败,原因超时
queue_overflow
OPR_FAILURE(ca) 排队失败,原因队列满。
no_agent
DEVICE_BUSY(ca) 排队失败,原因队没有坐席.
queue_failed
OPR_FAILURE(ca) 排队失败(宽带上用)。
queue_pause
OPR_PAUSE(ca) 排队中断(宽带上用)。
service_unactive 业务未激活(仅窄带上用)
user_ringoff 用户挂机(仅窄带上用)
unknown
ERROR(ca) 排队失败,原因未知
通过"name"属性来接受返回值。
转座席分为3个阶段:排队阶段、接续坐席阶段、通话以及通话结束阶段。
如果排队失败,object标签会有以下的返回值(表明失败的原因):
返回值 说明
queue_timeout
OPR_FAILURE(ca) 排队失败,原因超时
queue_overflow
OPR_FAILURE(ca) 排队失败,原因队列满。
no_agent
DEVICE_BUSY(ca) 排队失败,原因队没有坐席.
queue_failed
OPR_FAILURE(ca) 排队失败(宽带上用)。
queue_pause
OPR_PAUSE(ca) 排队中断(宽带上用)。
service_unactive 业务未激活(仅窄带上用)
user_ringoff 用户挂机(仅窄带上用)
unknown
ERROR(ca) 排队失败,原因未知
如果排队成功,而接续坐席失败,会有以下的返回值:
返回值 说明
busy
BUSY(ca) 被叫忙
noanswer
NO_ANSWER(ca) 被叫无应答
network_busy
BUSY(ca) 网络忙
unknown
ERROR(ca) 转接结束但结果未知
TIME_OUT(ca) 超时。
busy
BUSY(ca) 被叫忙
noanswer
NO_ANSWER(ca) 被叫无应答
network_busy
BUSY(ca) 网络忙
unknown
ERROR(ca) 转接结束但结果未知
TIME_OUT(ca) 超时。
与 坐席通话后可能的返回结果:
返回值 说明
stop_call
STOP_CALL(ca) 伪造的主叫挂机
near_end_disconnect
USER_HOOK(ca) 主叫挂断
far_end_disconnect
OPR_NOTIFY(ca) 被叫挂断
network_disconnect
ERROR(ca) 网络挂断
unknown
ERROR(ca) 转接因未知原因而中断
ERROR_NUMBER(ca) 号码错误
USER_HOOK
ERROR(ca) 超过最大连接时间挂断
stop_call
STOP_CALL(ca) 伪造的主叫挂机
near_end_disconnect
USER_HOOK(ca) 主叫挂断
far_end_disconnect
OPR_NOTIFY(ca) 被叫挂断
network_disconnect
ERROR(ca) 网络挂断
unknown
ERROR(ca) 转接因未知原因而中断
ERROR_NUMBER(ca) 号码错误
USER_HOOK
ERROR(ca) 超过最大连接时间挂断
影子变量
使用时将下表中的name替换成name属性定义的变量名
变量名 说明
name$.duration 转接通话时间(浮点值),如果在被叫回答前就被挂断,此值为零
name$.agentphone 坐席(话务员)号码
name$.operid 话务员工号
name$.callAgentStartTime 转接坐席的开始时间。类型为Date
name$.connectedTime 接通坐席时间,类型为Date
name$.releaseTime 结束坐席和用户通话的时间。类型为Date
name$.queueStartTime 排队开始时间。类型为Date
name$.queueEndTime 排队结束时间。类型为Date
name$.msg 坐席返回的随路数据
变量名 说明
name$.duration 转接通话时间(浮点值),如果在被叫回答前就被挂断,此值为零
name$.agentphone 坐席(话务员)号码
name$.operid 话务员工号
name$.callAgentStartTime 转接坐席的开始时间。类型为Date
name$.connectedTime 接通坐席时间,类型为Date
name$.releaseTime 结束坐席和用户通话的时间。类型为Date
name$.queueStartTime 排队开始时间。类型为Date
name$.queueEndTime 排队结束时间。类型为Date
name$.msg 坐席返回的随路数据
注意事项
注意:这里的注意事项对请求路由标签同样适用:
1.宽带上不支持按坐席工号排队;宽带商排队必须指定skill值
2.在单步转流程中排队请显式指定真实主叫的号码,即需填写aai值;
因为单步转呼叫VXML脚本得到的主叫号码实际上是上次排队呼通的坐席号码,
而二次排队时如果不指定主叫号码,VXI会默认将一次排队时得到的坐席号码作为主叫号码进行排队。
3.随路数据中请不要出现对skill,IDNO,CLD,OCLD这几个关键字的赋值,他们属于平台的保留的字段
4,宽带上,如果随路数据中出现了"US=",则只有"US="之后的内容才会被最终送到坐席上去。
要获取更多对客服系统排队的控制,请参考NGCC提供的排队参数说明文档
在业务向CTI发起排队请求时,会携带随路数据,其中随路数据中的US字段为业务自定义字段,约定如下:
1.US字段是关键字,用”US=“来描述,US=后内容存在多项时,出于兼容性考虑,建议使用"|"进行分割,例如:US=xxx|yyyy|ssss.
2.US字段的内容只能为下列字段(必须是ASCII字符集)的组合:
a-zA-Z0-9
!@#$^&*()-_+:{}[]|"'?<>.,
US=必须放在最后,US=后的内容格式由业务自定义,自定义的串内容只能是上述描述的字符组合,
所用字符集必须是ASCII字符集。US的内容最大为256个字符。
1.宽带上不支持按坐席工号排队;宽带商排队必须指定skill值
2.在单步转流程中排队请显式指定真实主叫的号码,即需填写aai值;
因为单步转呼叫VXML脚本得到的主叫号码实际上是上次排队呼通的坐席号码,
而二次排队时如果不指定主叫号码,VXI会默认将一次排队时得到的坐席号码作为主叫号码进行排队。
3.随路数据中请不要出现对skill,IDNO,CLD,OCLD这几个关键字的赋值,他们属于平台的保留的字段
4,宽带上,如果随路数据中出现了"US=",则只有"US="之后的内容才会被最终送到坐席上去。
要获取更多对客服系统排队的控制,请参考NGCC提供的排队参数说明文档
在业务向CTI发起排队请求时,会携带随路数据,其中随路数据中的US字段为业务自定义字段,约定如下:
1.US字段是关键字,用”US=“来描述,US=后内容存在多项时,出于兼容性考虑,建议使用"|"进行分割,例如:US=xxx|yyyy|ssss.
2.US字段的内容只能为下列字段(必须是ASCII字符集)的组合:
a-zA-Z0-9
!@#$^&*()-_+:{}[]|"'?<>.,
US=必须放在最后,US=后的内容格式由业务自定义,自定义的串内容只能是上述描述的字符组合,
所用字符集必须是ASCII字符集。US的内容最大为256个字符。
实例
该实例中:先对主叫放tts音,然后呼通被叫后,再对被叫放wav音。
<?xml version="1.0" encoding="gb2312"?>
<vxml version="2.0">
<var name="skill" expr="0"/>
<catch event="connection.disconnect.hangup">
<log label="LOG_ECT">主叫挂机</log>
<exit/>
</catch>
<form>
<block>
<prompt>接口测试</prompt>
</block>
<object name="test" classid="method://function/agentqueue">
<param name="skill" expr="1"/>
<param name="callData" exp="'Skill=1;AGTIDFLAG;Lang=1'"/>
<param name="pri" value="3"/>
<param name="queuetimeout" expr="15"/>
<param name="virtualcenter" expr="1"/>
<filled>
<prompt>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</prompt>
</filled>
</object>
<block>
<prompt>测试完成</prompt>
</block>
</form>
</vxml>
该实例中:先对主叫放tts音,然后呼通被叫后,再对被叫放wav音。
<?xml version="1.0" encoding="gb2312"?>
<vxml version="2.0">
<var name="skill" expr="0"/>
<catch event="connection.disconnect.hangup">
<log label="LOG_ECT">主叫挂机</log>
<exit/>
</catch>
<form>
<block>
<prompt>接口测试</prompt>
</block>
<object name="test" classid="method://function/agentqueue">
<param name="skill" expr="1"/>
<param name="callData" exp="'Skill=1;AGTIDFLAG;Lang=1'"/>
<param name="pri" value="3"/>
<param name="queuetimeout" expr="15"/>
<param name="virtualcenter" expr="1"/>
<filled>
<prompt>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</prompt>
</filled>
</object>
<block>
<prompt>测试完成</prompt>
</block>
</form>
</vxml>