IVR会议功能指南

1 .示例说明

  • (1) 通过rest接口创建会议,也可以用3和4来实现创建会议;
  • (2) 会议创建成功后通过rest接口邀请加入会议;
  • (3) 使用IVR外呼或者呼入方式后提示用户:按1创建会议,按2加入会议;
  • (4) 用户按1后创建会议,会议创建成功后提示创建的会议id,播报完成后自动加入会议;
  • (5) 用户按2后提示用户输入8位会议id;
  • (6) 用户输入超时后提示用户加入失败重新输入8位会议id,用户再输入超时后放音提示挂机;
  • (7) 用户输入错误会议id后加入会议失败提示用户重新输入,只有输入正确后才能加入会议,否则需要用户自己挂机;
  • (8) 用户输入正确加入会议。

2. 业务流程图

3. 开发指南

(1) 调用rest接口创建会议接口
(2) 会议创建成功调用rest接口邀请加入会议
(3) 如果需要呼入或外呼的方式创建会议和邀请或有则调用IVR外呼接口发起rest请求/呼入接入号
(4) 呼叫成功云通讯平台会向客户创建应用时填写的ivr通知地址发送通知消息
(5) 第三方服务器获取到通知消息响应按键放音,响应包体:
  • <?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。
(6) 若用户按键超时播放timeout.wav语音,语音播放完或按键打断后业务流程重定向到Redirect指向的URL,重新执行按键放音的操作。
(7) 获取到通知消息继续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秒超时后执行副命令,直接挂机。
(8) 用户按键完成向第三方服务器发送按键上报的通知

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

  • <?xml version='1.0' encoding='UTF-8'?>
  •         <Response>
  •                 <CreateConf action='createconfok' maxmember='10' autojoin='false'/>
  •         </Response>
  • 响应创建会议命令,创建会议成功后会通知到 'createconfok'地址

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

  • <?xml version='1.0' encoding='UTF-8'?>
  •         <Response>
  •                 <Get action='joinconfget' numdigits='8' timeout='30'>
  •                   <Play>confjoin.wav</Play>
  •           </Get>
  •           <Play>timeout.wav</Play>
  •                 <Redirect tag='2'>gettimeout</Redirect>
  •                     </Response>
  • 获取按键命令,接收用户输入的会议ID,按键超时则跳转到gettimeout

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

  • <?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>

(9) 收到用户按2键的通知,响应加入会议,响应包体:

  • <?xml version='1.0' encoding='UTF-8'?>
  •             <Response>
  •               <JoinConf action='joinconfok' confid='$digits'/>
  •               <Redirect>joinconffail</Redirect>
  •       </Response> 
  • 说明:加入会议命令,加入会议成功会通知到 'joinconfok'
(10) 用户按1键成功创建会议给第三方服务器发创建成功的通知
(11) 获取到通知消息响应播放提示音并自动加入会议,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  •     <Response>
  •             <PlayMix type='40'>createconf.wav;$confid</PlayMix>
  •       <Redirect>autojoinconf</Redirect>
  •     </Response> 
  • 说明:播放混合音命令播放会议ID,后跳转到 autojoinconf
(12) 语音文件播报完成定向到Redirect指向的URL:autojoinconf
(13) 第三方服务器获取不到通知响应加入会议,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  •     <Response>
  •             <JoinConf action='joinconfok' confid='$confid'/>
  •             <Redirect>joinconffail</Redirect>
  •     </Response>
  • 说明:加入会议命令
(14) 如果加入会议成功则向第三方服务器发送加入成功的通知消息
(15) 不需要后续流程,直接想用空命令即可,响应包体:
  • <Response>
  •                    <CmdNone/>
  •                 </Response>
  • 说明:不需要后续流程,响应空命令
(16) 如果加入会议失败则定向到Redirect指向的URL:joinconffail并重复5的流程,响应包体:
  • <?xml version='1.0' encoding='UTF-8'?>
  •     <Response>
  •             <Get action='joinconfget' numdigits='8' timeout='30'>
  •                     <Play>confjoinfail.wav</Play>
  •       </Get>
  •       <Play>timeout.wav</Play>
  •       <Redirect tag='2'>gettimeout</Redirect>
  •     </Response> 
  • 说明: 获取按键命令,接收用户输入的会议ID,按键超时则跳转到gettimeout
(17) 挂机后向第三方服务器发送挂机通知
(18) 挂机后响应空命令即可,响应包体:
  • <Response>
  •      <CmdNone/></Response>
  • 说明:主命令为空命令,因为结束业务了不需要返回其他的IVR命令。

4. 参考文档