[Freeswitch-users] preAnswer call at lua script and then bridge it to another leg

Nikolay Rogoshchenkov nickolayr at gmail.com
Wed May 2 07:17:54 MSD 2012


Hello,

I have a dialplan where I get the incoming call to lua script

<extension name="ext_call">
 <action application="set" data="hangup_after_bridge=true"/>
 <action application="set" data="ignore_early_media=false"/>
 <condition field="destination_number" expression="\d{7,}"/>.
 <condition field="${sip_from_host}" expression="^(10\.9\.0\.25)$">.
 <action application ="lua" data="answer.lua"/>.
 </condition>
</extension>

and then I have answering in answer.lua:
===========================
session:preAnswer();

[...accessing to DB...]

if (session:ready()) then
 repeat
    index = index + 1;
    session_call =
string.format("[leg_timeout=30,ignore_early_media=true,hangup_after_bridge=true,origination_caller_id_number="..
cid .."]sofia/gateway/%s/%s",gwlist[index],dn);
    legB = freeswitch.Session(session_call);
until ((hcause == 'USER_BUSY') or (hcause == 'SUCCESS') or (hcause ==
'NO_ANSWER') or (index == #gwlist) or(session:ready() == false))

if (legB:ready()) then.
    freeswitch.bridge(session, legB)
end
===========================

But I have a one problem, when the initial legA was disconnected before
legB was answered. It it still continued  to call legB (during the
leg_timeout).
Could you please explain, how I can cancel legB right after I got
disconnect on legA in this case? Thank you.
--
Nikolay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20120501/46ffa510/attachment-0001.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users mailing list