[FreeSwitch mod_avmd在bgapi uuid_broadcast启动时停止

问题描述 投票:0回答:1

我需要在呼叫应答上开始播放介绍性的声音文件并检测被叫方发出的哔声

我尝试过的是:

  1. 启动avmd
  2. 桥接呼叫
  3. 使用bgapi在应答中开始介绍声音消息播放

但是后台播放开始时avmd暂停,并在之后继续

网关拨号计划是:

<extension name="mytelco">
        <condition field="destination_number" expression="^987(\d+)$">
            <action application="set" data="effective_caller_id_number=46xxxxxxxx"/>
            <param name="caller-id-in-from" value="true"/>
            <action application="set" data="record_link=${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/>
            <action application="record_session" data="/var/www/html/freeswitch/recordings/${record_link}"/>
            <action application="lua" data="/etc/freeswitch/scripts/beep_detection-from-call-v0.1.2.lua $1 ${record_link}"/>
            <action application="hangup"/>
        </condition>
    </extension>

文件beep_detection-from-call-v0.1.2.lua

#!/usr/local/bin/lua

DNID = argv[1]

if session:ready() then
   session:sleep(1000)
   session:execute("avmd_start", "inbound_channel=1,outbound_channel=0,sample_n_continuous_streak=10,sample_n_to_skip=0,debug=1,report_status=1")

    session:execute("bridge", "{execute_on_answer=lua /etc/freeswitch/scripts/on_answer-v0.3.lua " .. uuid .. "}sofia/gateway/mytelco/" .. DNID)

    session:execute("avmd_stop","")

end --if

file on_answer-v0.3.lua

#!/usr/bin/lua

uuid_original = argv[1]

api = freeswitch.API()

reply = api:executeString("bgapi uuid_broadcast " .. uuid_original .. " /usr/share/asterisk/sounds/en/dennis-ivan.gsm both")

freeswitch.consoleLog("INFO","==============================================")
freeswitch.consoleLog("INFO","API reply is:" .. reply)
freeswitch.consoleLog("INFO","==============================================")
freeswitch
1个回答
0
投票

我不确定您是否遇到了与我相同的问题。我已升级到最新版本的Freeswitch(当前为1.10),并且AVMD停止以您描述的类似方式工作。我用头撞墙碰了几个星期。烦人的是,解决方法是删除sample_n_to_skip=0

© www.soinside.com 2019 - 2024. All rights reserved.