请求路由(用户技能需求、坐席工号)。该标签经过属性设置可以实现俩个功能。
1.只排队
2.排队+接续坐席
1.只排队
2.排队+接续坐席
标签用法
<object name="test" classid="method://ngcc/Other/RequestRouting">
<param name="WaitingAudio" value="ipfile://wait.wav"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="virtualcenter" expr="1"/>
<param name="RoutingType" value="1"/>
<param name="RoutingInfo" value="1"/>
<param name="WaitReturn" value="0"/>
<filled>
<log>
转接结果<value expr="test"/>
随路数据<value expr="test$mag"/>
通话时长<value expr="test$duration"/>
</log>
</filled>
</object>
<param name="WaitingAudio" value="ipfile://wait.wav"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="virtualcenter" expr="1"/>
<param name="RoutingType" value="1"/>
<param name="RoutingInfo" value="1"/>
<param name="WaitReturn" value="0"/>
<filled>
<log>
转接结果<value expr="test"/>
随路数据<value expr="test$mag"/>
通话时长<value expr="test$duration"/>
</log>
</filled>
</object>
<object name="test" classid="method://cm-ngcc/Other/RequestRouting">
<param name="WaitingAudio" value="ipfile://wait.wav"/>
<param name="callData" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="virtualcenter" expr="1"/>
<param name="RoutingType" value="1"/>
<param name="RoutingInfo" value="1"/>
<param name="WaitReturn" value="0"/>
<filled>
<log>
转接结果<value expr="test"/>
随路数据<value expr="test$mag"/>
通话时长<value expr="test$duration"/>
</log>
</filled>
</object>
属性
属性名 说明
name 对象名称
classid method://ngcc/Other/RequestRouting(D)
method://cm-ngcc/Other/RequestRouting(ca)
name 对象名称
classid method://ngcc/Other/RequestRouting(D)
method://cm-ngcc/Other/RequestRouting(ca)
参数
参数名 说明
RoutingType 请求路由类型。(IN)
可以取以下值:1.技能 2.坐席工号(宽带上不支持按工号来排队)
RoutingInfo 请求路由信息(IN)
和RoutingType相对应。
WaitReturn 是否等待返回。(IN)(OP)
可以取以下值:0.不等待返回,此时该标签完成排队+接续坐席的动作;1.等待返回,此时该标签只完成排队的动作。默认为0.
CLI 主叫号码。(OP)
ConnectTimeOut 最大排队等待时间(OP)
宽带上不支持
WaitingAudio 排队过程中的等待音,只能是audio类型的语音;排队结束,转接坐席前会终止此放音。默认是ipfile://wait.wav.(OP)
AudioRepeate 排队音重复播放的次数,默认为5.业务应根据具体排队音的长度设置此值,以保证在排队结束之前,一直能播放排队音。(OP)
callData 随路数据
virtualCenter 虚拟中心号
skill 技能号。当RoutingType为2时该参数有效
pri 排队优先级。(只支持窄带)
参数名 说明
RoutingType 请求路由类型。(IN)
可以取以下值:1.技能 2.坐席工号(宽带上不支持按工号来排队)
RoutingInfo 请求路由信息(IN)
和RoutingType相对应。
WaitReturn 是否等待返回。(IN)(OP)
可以取以下值:0.不等待返回,此时该标签完成排队+接续坐席的动作;1.等待返回,此时该标签只完成排队的动作。默认为0.
CLI 主叫号码。(OP)
ConnectTimeOut 最大排队等待时间(OP)
宽带上不支持
WaitingAudio 排队过程中的等待音,只能是audio类型的语音;排队结束,转接坐席前会终止此放音。默认是ipfile://wait.wav.(OP)
AudioRepeate 排队音重复播放的次数,默认为5.业务应根据具体排队音的长度设置此值,以保证在排队结束之前,一直能播放排队音。(OP)
callData 随路数据
virtualCenter 虚拟中心号
skill 技能号。当RoutingType为2时该参数有效
pri 排队优先级。(只支持窄带)
返回值
通过"name"属性来接收返回值
classid="method://ngcc/Other/RequestRouting"标签的返回值:
返回值 说明
OPR_SUCCESS 排队成功。在WaitReturn参数为1时,该返回值才有效
busy 被叫忙
noanswer 被叫无应答
network_busy 网络忙
route_select_failure 路由失败
stop_call 伪造的主叫挂机
near_end_disconnect 主叫挂断
far_end_disconnect 被叫挂断
network_disconnect 网络挂断
unknown 转接因未知原因而中断
classid="method://ngcc/Other/RequestRouting"标签的返回值:
返回值 说明
OPR_SUCCESS 排队成功。在WaitReturn参数为1时,该返回值才有效
busy 被叫忙
noanswer 被叫无应答
network_busy 网络忙
route_select_failure 路由失败
stop_call 伪造的主叫挂机
near_end_disconnect 主叫挂断
far_end_disconnect 被叫挂断
network_disconnect 网络挂断
unknown 转接因未知原因而中断
classid="method://cm-ngcc/Other/RequestRouting"标签的返回值:
返回值 说明
OPR_FAILURE 路由失败
OPR_SUCCESS 路由成功
BUSY 被叫或网络忙
NO_ANSWER 被叫无应答
TIME_OUT 超时
STOP_CALL 伪造的主叫挂机
USER_HOOK 主叫挂断
OPR_NOTIFY 人工台转回
ERROR 出错
ERORR_NUMBER 号码错误
OPR_FAILURE 路由失败
OPR_SUCCESS 路由成功
BUSY 被叫或网络忙
NO_ANSWER 被叫无应答
TIME_OUT 超时
STOP_CALL 伪造的主叫挂机
USER_HOOK 主叫挂断
OPR_NOTIFY 人工台转回
ERROR 出错
ERORR_NUMBER 号码错误
注意
此标签为同步标签。注意事项参照转接坐席标签的注意事项
此标签为同步标签。注意事项参照转接坐席标签的注意事项
影子变量
使用时将下表中的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 坐席返回的随路数据
name$.errorCode的取值如下:宽带
排队失败返回值 说明
qrrTimeOut
qrrTimeOutToMM
qrrTimeOutToSCE 排队失败,原因超时
qrrTimeOut
qrrTimeOutToMM
qrrTimeOutToSCE 排队失败,原因超时
qrrQTooLongToMM
qrrQTooLongToSCE 排队失败,原因队列满
qrrQTooLongToSCE 排队失败,原因队列满
qrrNoAgent
qrrNoAgentToMM
qrrNoAgentToSCE 排队失败,原因队没有坐席
qrrNoAgentToMM
qrrNoAgentToSCE 排队失败,原因队没有坐席
qrrFailure 排队失败
qrrPause 排队中断
qrrPause 排队中断
name$.errorCode的取值如下:窄带
排队失败返回值 说明
Queue_Timerout 排队失败,原因超时
Queue_OverFlow 排队失败,原因队列满
No_Agent_OnLine
qrrNoAgentToMM
qrrNoAgentToSCE 排队失败,原因队没有坐席
Service_Unactive 业务未激活
User_RingOff 用户挂机
排队失败返回值 说明
Queue_Timerout 排队失败,原因超时
Queue_OverFlow 排队失败,原因队列满
No_Agent_OnLine
qrrNoAgentToMM
qrrNoAgentToSCE 排队失败,原因队没有坐席
Service_Unactive 业务未激活
User_RingOff 用户挂机
实例
示例1:该示例是使用该标签完成排队+接续坐席的功能。
<?xml version="1.0" encoding="gb2312"?>
<vxml version="2.0">
<catch event="connection.disconnect.hangup">
<log label="LOG_EVT">主叫挂机</log>
<exit/>
</catch>
<form>
<object name="test" classid="method:cm-ngcc/Other/RequestRouting">
<param name="WaitingAudio" value="ipfile://wait.wav"/>
<param name="callDate" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="virtualcenter" expr="1"/>
<param name="RoutingType" value="1"/>
<param name="RoutingInfo" value="1"/>
<param name="WaitReturn" value="0"/>
<filled>
<log>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</log>
<if cond="test=='USER_HOOK'">
<exit/>
</if>
<if cond="test=='OPR_FAILURE'"
<exit/>
</if>
<log>======result:<value expr="test"/>======</log>
</filled>
</object>
</form>
</vxml>
<?xml version="1.0" encoding="gb2312"?>
<vxml version="2.0">
<catch event="connection.disconnect.hangup">
<log label="LOG_EVT">主叫挂机</log>
<exit/>
</catch>
<form>
<object name="test" classid="method:cm-ngcc/Other/RequestRouting">
<param name="WaitingAudio" value="ipfile://wait.wav"/>
<param name="callDate" expr="'Skill=1;AGTIDFLAG=0;Lang=1'"/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="virtualcenter" expr="1"/>
<param name="RoutingType" value="1"/>
<param name="RoutingInfo" value="1"/>
<param name="WaitReturn" value="0"/>
<filled>
<log>
转接结果<value expr="test"/>
随路数据<value expr="test$.msg"/>
通话时长<value expr="test$.duration"/>
</log>
<if cond="test=='USER_HOOK'">
<exit/>
</if>
<if cond="test=='OPR_FAILURE'"
<exit/>
</if>
<log>======result:<value expr="test"/>======</log>
</filled>
</object>
</form>
</vxml>
示例2:该示例是使用该标签只完成排队,然后用<transfer>标签持续坐席的功能
<?xml version="1.0" encoding="gb2312"?>
<vxml version="2.0">
<var name="Play" expr=""/>
<var name="Agnetphone"/>
<form id="requestRouting">
<block>
<assign name="Paly" expr="ipfile://busy.wav"/>
</block>
<object name="Queue" classid="method://cm-ngcc/Other/requestRouting">
<param name="WaitingAudio" expr="Play"/>
<param name="callData" expr="US="/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="vitualcenter" expr="1"/>
<param name="RoutingType" expr="1"/>
<param name="RoutingInfo" expr="2"/>
<param name="WaitReturn" expr="1"/>
<filled>
<log>
result:<value expr="Queue"/>
agentphone:<value expr="Queue$.agentphone"/>
</log>
<assign name="Agnetphone" expr="Queue$.agentphone"/>
<if cond="Queue=='OPR_SUCCESS'">
<goto next="#Transfer"/>
</if>
<if cond="Queue=='OPR_FAILURE'">
<assign name="first" expr="first+1"/>
<goto next="#query"/>
</if>
<log>=====errorCode:<value expr="Queue$.errorCode"/>=====</log>
<goto next="#Transfer"/>
</filled>
</object>
</form>
<form id="Transfer">
<transfer name="tran_test" bridge="true" destexpr="Agentphone" maxtime="5s">
<filled>
<if cond="tran_test=='far_end_disconnect'">
<log>far end</log>
<elseif cond="tran_test=='busy'"/>
<log>enter callback process</log>
</if>
<log>
Transfer success,holding time<value expr="tran_test$.duration"/>秒
</log>
<exit/>
</filled>
</transfer>
</form>
</vxml>
<vxml version="2.0">
<var name="Play" expr=""/>
<var name="Agnetphone"/>
<form id="requestRouting">
<block>
<assign name="Paly" expr="ipfile://busy.wav"/>
</block>
<object name="Queue" classid="method://cm-ngcc/Other/requestRouting">
<param name="WaitingAudio" expr="Play"/>
<param name="callData" expr="US="/>
<param name="AudioRepeate" expr="3"/>
<param name="ConnectTimeOut" expr="6"/>
<param name="vitualcenter" expr="1"/>
<param name="RoutingType" expr="1"/>
<param name="RoutingInfo" expr="2"/>
<param name="WaitReturn" expr="1"/>
<filled>
<log>
result:<value expr="Queue"/>
agentphone:<value expr="Queue$.agentphone"/>
</log>
<assign name="Agnetphone" expr="Queue$.agentphone"/>
<if cond="Queue=='OPR_SUCCESS'">
<goto next="#Transfer"/>
</if>
<if cond="Queue=='OPR_FAILURE'">
<assign name="first" expr="first+1"/>
<goto next="#query"/>
</if>
<log>=====errorCode:<value expr="Queue$.errorCode"/>=====</log>
<goto next="#Transfer"/>
</filled>
</object>
</form>
<form id="Transfer">
<transfer name="tran_test" bridge="true" destexpr="Agentphone" maxtime="5s">
<filled>
<if cond="tran_test=='far_end_disconnect'">
<log>far end</log>
<elseif cond="tran_test=='busy'"/>
<log>enter callback process</log>
</if>
<log>
Transfer success,holding time<value expr="tran_test$.duration"/>秒
</log>
<exit/>
</filled>
</transfer>
</form>
</vxml>