bridge之前无法听到真实回铃音

  chuxl
阅读 3211 次  4 条评论
1、测试场景如下: 使用lua写了一个脚本,pstn用户通过diaplan呼入到这个lua脚本,接下来脚本需要按顺序呼两个用户 local session1=freeswitch.Session("{origination_caller_id_number=*******}sofia/gateway/gw1/num1") 如果10秒后session1没有应答,会接着呼叫第二通 local session2=freeswitch.Session("{origination_caller_id_number=*******}sofia/gateway/gw1/num2") 当两个号码中任意一个应答,将另外一个未被应答的session挂机,紧接着 freeswitch.bridge(session,session1 or session2) 2、测试代码如下: ``` local callnum1 = 'xxxxx'; local callnum2 = 'xxxxxx'; local call_prefix = '{origination_caller_id_number=xxxx}sofia/gateway/gw1/'; local callstring1 = call_prefix .. callnum1; local callstring2 = call_prefix .. callnum2; session:answer(); api = freeswitch.API(); local legA = freeswitch.Session(callstring1); local dispoA = "none" local dispoB = "none" local calltimer = 0; while(legA:ready() and dispoA ~="ANSWER" and session:ready()) do dispoA = legA:getVariable("endpoint_disposition"); freeswitch.consoleLog("INFO","leg A disposition is " .. dispoA .. "\n"); calltimer = calltimer + 1; if calltimer >= 20 then if calltimer == 20 then legB = freeswitch.Session(callstring2); end dispoB = legB:getVariable("endpoint_disposition"); end if dispoB == "ANSWER" then legA:hangup(); freeswitch.bridge(session,legB); end session:sleep(500); end if session:ready() then if dispoA =="ANSWER" and session:ready() and legA:ready() then if calltimer >= 20 then legB:hangup(); end freeswitch.bridge(session,legA); end else legA:hangup(); legB:hangup(); end ``` 3、问题如下: 我需要在bridge之前听到session1的真实回铃音,还请各位大神帮忙看看是否有方法,多谢!

4条回复

主题回复:

(您需要 登录 后才能回复 没有账号 ?)
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet