请求路由标签

请求路由(用户技能需求、坐席工号)。该标签经过属性设置可以实现俩个功能。
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>


<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)

参数
参数名  说明
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://cm-ngcc/Other/RequestRouting"标签的返回值:

返回值   说明
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$.errorCode的取值如下:宽带

排队失败返回值  说明
qrrTimeOut
qrrTimeOutToMM
qrrTimeOutToSCE  排队失败,原因超时

qrrQTooLongToMM
qrrQTooLongToSCE 排队失败,原因队列满

qrrNoAgent
qrrNoAgentToMM
qrrNoAgentToSCE  排队失败,原因队没有坐席

qrrFailure  排队失败
qrrPause  排队中断

name$.errorCode的取值如下:窄带
排队失败返回值  说明
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>

示例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>






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值