4、IVR 坐席功能指南

4.1 示例说明

(1) 通过创建队列接口创建1和2队列;

(2) 通过坐席上班接口把坐席上班准备中,然后通过坐席准备就绪接口把坐席状态置为准备就绪;

(3) 用户呼入或者IVR外呼用户接听后放音提示按键,使用按键命令嵌套放音命令,放音循环播放并且设置按键超时时间,放音提示:欢迎致电,中文服务请按1,英文服务请按2;

(4) 用户按键1进入1队列转接1队列中的坐席,用户按键2进入2队列转接2队列中的坐席,设置进入排队超时时间。

(5) 增加进入排队的副命令调整,在用户等待中没有坐席接听的时候调整到副命令,然后放音提示:坐席正忙,继续等待请按1,结束请挂机。

(6) 用户按1继续进入排队,按其他键直接挂机。

(7) 当坐席接听并且坐席挂机后通过回调放音提示用户:请对我们的客服人员做评价,满意请按1,不满意请按2;

(8) 用户超时没按键挂机,用户按1或者2后提示用户:感谢您的来电,再见!挂机

4.2 业务流程图

4.3 开发指南

(1) 调用CreateQueue接口,分别创建1队列和2队列;

(2) 调用AgentOnWork接口,分别在1队列和2队列上班座席,座席号码可以写控制台里配置的测试号码,并且座席状态设置为1准备就绪状态

(3) 如果设置坐席状态0准备中,可以通过AgentReady接口设置坐席准备就绪;

(4) 调用IVR外呼接口发起rest请求/呼入接入号

(5) 呼叫成功云通讯平台会向客户创建应用时填写的ivr通知地址发送通知消息

(6) 第三方服务器获取到通知消息响应按键放音,响应包体:

<?xml version='1.0' encoding='UTF-8'?>
    <Response>
        <Get action='firstget' numdigits='1' timeout='30'>
            <Play>confmenu.wav</Play>
        </Get>
        <Play>timeout.wav</Play>
        <Redirect tag='1'>gettimeout</Redirect>
    </Response>

说明:主命令为按键命令并且嵌套confmenu.wav的放音提示,在用户按键1就回调通知到'firstget'的地址,如果用户没有按键就会20秒超时后执行副命令,跳转通知gettimeout。

(7) 若用户按键超时播放timeout.wav语音,语音播放完或按键打断后业务流程重定向到Redirect指向的URL,重新执行按键放音的操作。

(8) 获取到通知消息继续3的流程提示用户按键,响应包体:

<?xml version='1.0' encoding='UTF-8'?>
        	<Response>
        		<Get action='firstget' numdigits='1' timeout='30'>
        			<Play>confmenu.wav</Play>
        		</Get>
        		<Play>timeoutbye.wav</Play>
        		<Hangup/>
        	</Response> 

说明:主命令为按键命令并且嵌套confmenu.wav的放音提示,在用户按键1就回调通知到'firstget'的地址,如果用户没有按键就会20秒超时后执行副命令,直接挂机。

(9) 用户按键完成向第三方服务器发送按键上报的通知

(10) 获取按键上报

a) 如果用户按1键,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
        <Response>
         <EnterCCS queuetype='1' timeout='30' queuetimes='1' agenthangupurl='agenthangup'>
         <Play>waitmusic.wav</Play>
         </EnterCCS>
         <Redirect tag='1'>transferAgentFail</Redirect>
        </Response>

b) 如果用户按2键,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
        <Response>
         <EnterCCS queuetype='2' timeout='30' queuetimes='1' agenthangupurl='agenthangup'>
         <Play>waitmusic.wav</Play>
         </EnterCCS>
         <Redirect tag='2'>transferAgentFail</Redirect>
        </Response>

c) 如果用户按其他键,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
        <Response>
         <Hangup/>
        </Response>

说明:主命令为进入队列命令,用户按1进入1队列,按2进入2队列,嵌套waitmusic.wav放音,如果有座席空闲则转到座席,座席接听并挂机后回调agenthangup,座席超时未接听发话则跳转到transferAgentFail。

(11) 如果座席未接听则定向到Redirect指向的URL:transferAgentFail,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
    <Response>
        <Get action=' getchinesequeue ' numdigits='1' timeout='20'>
            <Play loop='-1'>menu.wav</Play>
        </Get>
        <Play>timeoutbye.wav</Play>
        <Hangup/>
</Response>

说明:主命令为按键命令并且嵌套menu.wav的放音提示,提示用户是否继续排队,在用户按键一个就回调通知到dtmfreport的地址,如果用户没有按键就会20秒超时后执行副命令,播放timeoutbye.wav的提示放音后挂机,通过判断tag的值区分是1队列还是2队列,跳转到不同的地址继续排队。

(12) 如果用户按1键,则获取继续排队的按键上报通知并响应继续排队,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
        <Response>
         <EnterCCS queuetype='1' timeout='30' queuetimes='1' agenthangupurl='agenthangup'>
         <Play>waitmusic.wav</Play>
         </EnterCCS>
         <Hangup/>
        </Response>

说明:通过此命令让用户继续排队

(13) 坐席成功接听后,座席挂机向第三方服务器发通知消息

(14) 第三方服务器收到通知响应按键评价,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
    <Response>
        <Get action='pingjia' numdigits='1' timeout='20'>
            <Play loop='-1'>pingjia.wav</Play>
        </Get>
        <Play>bye.wav</Play>
        <Hangup/>
	</Response>

说明:获取用户按键,让用户对座席进行评价

(15) 获取到用户用户按键上报,并响应放音挂机,响应包体:

<?xml version='1.0' encoding='UTF-8' ?>
	<Response>
		<Play>thank.wav</Play><Hangup/>
	</Response>

说明:得到用户的按键,放音提示完成后挂机

(16) 用户挂机结束业务

(17) 挂机后响应空命令即可

<Response>
        <CmdNone/>
</Response>

说明:主命令为空命令,因为结束业务了不需要返回其他的IVR命令。

(18) 坐席在被锁定到挂机的过程中都会有状态改变

(19) 挂机后响应空命令即可,响应包体:

<Response>
    	<CmdNone/>
</Response>

说明:坐席状态改变不需要后续命令,返回空命令即可,如果坐席接听后状态变化为0准备中需要通过AgentReady接口让坐席准备就绪。如果想实现坐席自动准备就绪,可以在坐席状态改变为0准备中的时候响应坐席准备就绪命令,坐席其他状态不需要后续业务直接返回空命令。

响应坐席准备就绪命令示例:

<Response>
<Appid>"+appid+"</Appid>
<AgentReady agentid='"+agentid+"'/>
</Response>

4.4 注意事项

(1) 如果坐席是网络端,成功接听来电需要满足两点:

a)调用坐席上班接口将坐席状态置为准备就绪状态

b)客户端成功登陆sdk

(2) 坐席状态改变说明

0→1 坐席上班后调用准备就绪接口,只有准备就绪在队列里才能被锁定

1→2 进入队列,坐席外呼或坐席内呼锁定坐席

注:坐席强制准备就绪(即 准备就绪命令force="true") 不管之前坐席什么状态都会把状态改为1

3→0 坐席挂机会返回坐席0的状态

4→0 拒接,或客户端不在线等状态之后直接返回4的状态,然后挂机都会变为0状态,坐席如需继续服务,需将坐席状态置为1的状态,如果不想每次手动改变状态,可以自动准备就绪。实现方法:收到坐席状态0的通知,响应ivr坐席命令里的准备就绪命令即可。

注:坐席状态4到0状态中间间隔时长为10s

(3) 坐席通话时长是需客户自己通过坐席状态改变通知来实现的。

4.5 参考文档

(1) rest 座席管理接口文档

(2) IVR基础命令接口文档

(3) IVR基础通知消息接口文档

(4) IVR座席命令接口文档

(5) IVR 座席通知消息接口文档

文档更新时间:2016年10月25日