1. fs dialplan增加extension,将通话放置在队列中

<extension name="fifoQueue4CallTest">
    <condition field="destination_number" expression="^fifoQueue4CallTest$">
        <action application="set" data="fifo_music=local_stream://moh"/>
        <!--<action application="set" data="fifo_chime_list=say:您拨打的客户正在通话中,请耐心等候"/>-->
        <action application="set" data="fifo_chime_list=phrase:test_fifo_position:${uuid}"/>
        <action application="set" data="fifo_chime_freq=15"/>
        <action application="fifo" data="queuetest in"/>
    </condition>
</extension>

上述配置,先设置排队等待音(fifo_music),在设置提示语(fifo_chime_list),这里的提示语用的是Parase短语+Macro的形式,可以在运行时再去解析获取具体播报内容,然后每隔15秒重复播报提示语,这些都设置好之后,进入队列

2. conf/lang/en/ivr/sounds.xml中加test_fifo_position Macro

<macro name="test_fifo_position">
  <input pattern="^(.*)$">
    <match>
      <action function="speak-text" data="您拨打的电话正在通话中,您当前排在第${fifo_position}位"/>
    </match>
  </input>
</macro>

3. 修改conf/lang/en/en.xml配置文件,配置tts-engine和tts-voice

<include>
  <language name="en" say-module="en" sound-prefix="$${sound_prefix}" tts_engine="unimrcp:hs-tts" tts_voice="xiaoruan" >
    <phrases>
      <macros>
        <X-PRE-PROCESS cmd="include" data="demo/*.xml"/> <!-- Note: this now grabs whole subdir, previously grabbed only demo.xml -->
        <!-- voicemail_en_tts is purely implemented with tts, we have the files based one that is the default. -->
        <X-PRE-PROCESS cmd="include" data="vm/sounds.xml"/> <!-- vm/tts.xml if you want to use tts and have cepstral -->
        <X-PRE-PROCESS cmd="include" data="dir/sounds.xml"/> <!-- dir/tts.xml if you want to use tts and have cepstral -->
         <X-PRE-PROCESS cmd="include" data="ivr/*.xml"/>  <!-- IVR and custom phrases go here -->
       </macros>
       <X-PRE-PROCESS cmd="include" data="vm/voicemail_ivr.xml"/>
     </phrases>
   </language>
 </include>

然后fs_cli中reloadxml,进线即可听到对应的提示语

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐