[Freeswitch-users] Executing multiple applications in parallel

Michael Collins msc at freeswitch.org
Sat Jan 26 04:42:23 MSK 2013


Well, I did think of one thing that you could try. If it works it would be
kind of cute:

Answer the call like you currently do, grab the digits from the caller
Set the transfer_ringback variable to ${hold_music} (or whatever you want
them to hear)
Transfer the call to another extension, like this:
<action application="transfer" data="data_dip"/>

Create a new extension like this:

<extension name="data dip">
  <condition field="destination_number" expression="^data_dip$">
    <action application="ring_ready"/> <!-- or maybe pre_answer (?) -->
    <action application="lua" data="get_customer_info.lua ${case_number}"/>
    <action application="answer"/>
    ... do whatever you need to do with the call after the data dip
  </condition>
</extension>

The theory is that the "please hold while we look up your info..." sound is
the "transfer ringback" sound. The target extension "data_dip" then "rings"
while it's looking up the info and then "answers" after the lookup is
complete.

I didn't try it so please remember that the standard
disclaimer<http://wiki.freeswitch.org/wiki/Reporting_Bugs#Standard_Disclaimer>applies.
Let us know if you make any headway on this.

-MC

On Fri, Jan 25, 2013 at 4:32 PM, JP <jaykris at gmail.com> wrote:

> MC,
> Thanks for the info. Unfortunately outbound event socket application is
> not an option for me right now. I was wondering if the following "ideas"
> can be of any use to me( I know I am trying clutch at straws, but hope is
> eternal :))
> 1. Use "bgapi". Although on the wiki I only see this used with "originate".
> 2. Can I use a conference to park the caller there while playing music on
> another call leg of the conference. Meanwhile can I execute the Lua script
> :))
> 3. Can I launch another Lua script from my original one asynchronously?
> 4. Can I have a start up Lua script running in the background listening
> for some custom events and I can have the main caller thread generate the
> custom event and then start playing long music file. Once the background
> Lua script is done with the data dip, it can just break the music on the
> other channel.
>
> That's it from me. Someone help me from sinking... please.
>
> Thanks,
> -JP
>
>
> On Fri, Jan 25, 2013 at 4:10 PM, Michael Collins <msc at freeswitch.org>wrote:
>
>> The problem you're running into is that you are trying to do two
>> different things inside of the thread that is controlling the call flow.
>> Playing sound files and running Lua scripts are synchronous in this
>> context. This seems more suited for an outbound event socket application.
>> Using the event socket you can control the call while doing other things.
>>
>> Just curious - does anyone have an ESL example of this kind of thing? The
>> wiki could definitely use this kind of example as it is quite useful. I'll
>> look around and see if I can find anything.
>>
>> -MC
>>
>>
>> On Fri, Jan 25, 2013 at 3:00 PM, JP <jaykris at gmail.com> wrote:
>>
>>> Avi,
>>> Thanks for the response. Unfortunately that did not work. This is what I
>>> did
>>>
>>>
>>>     <extension name="MyExtension">
>>>       <condition field="destination_number" expression="9005">
>>>             <action application="answer"/>
>>>             <action application="play_and_get_digits" data="4 16 3 7000
>>> # phrase:MyPrompt phrase:My_invalid_entry case_number \d+" />
>>>             <action application="playback" data="phrase:wait_msg" />
>>>             <action application="sched_broadcast" data="+0
>>> playback::/tmp/WPJ_MUSIC_QUEUE_4.wav"/>
>>>             <action application="lua" data="get_customer_info.lua
>>> ${case_number}" />
>>>        </condition>
>>>     </extension>
>>>
>>> The music only plays after the Lua script exits. I played around with
>>> the timer value, but that did not help either. Any other ideas?
>>>
>>> Thanks
>>> JP
>>>
>>>
>>> On Fri, Jan 25, 2013 at 1:22 AM, Avi Marcus <avi at avimarcus.net> wrote:
>>>
>>>> ESL gives you more control, especially to execute things in parallel.
>>>> If you want to do it within FS, that's a little more complicated, since
>>>> most things are sequential.
>>>>
>>>> However, if you use the async APIs, then I think it could work:
>>>> 1) sched_broadcast<http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_sched_broadcast> --
>>>> schedule the playback of your file on the UUID of the channel, for +0,
>>>> meaning now.
>>>> 2) run your lua script
>>>> 3) Then stop (break) the playback on that uuid: break<http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_break>
>>>> 4) Continue with your execution.
>>>>
>>>> Please wikify your results and let us know how that works out!
>>>> -Avi
>>>>
>>>>  On Fri, Jan 25, 2013 at 3:34 AM, JP <jaykris at gmail.com> wrote:
>>>>
>>>>>  I want to do the following...
>>>>>
>>>>> 1. Play a long music file from a dialplan.
>>>>> 2. While the music is playing, I want to launch a Lua script to do
>>>>> some data dip.
>>>>> 3. Once the data is fetched and Lua exits, I want to interrupt the
>>>>> music and continue in the dialplan
>>>>>
>>>>> How do I do this. Any sample code or pointers would be greatly
>>>>> appreciated.
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>> _________________________________________________________________________
>>>>> Professional FreeSWITCH Consulting Services:
>>>>> consulting at freeswitch.org
>>>>> http://www.freeswitchsolutions.com
>>>>>
>>>>> 
>>>>> 
>>>>>
>>>>> Official FreeSWITCH Sites
>>>>> http://www.freeswitch.org
>>>>> http://wiki.freeswitch.org
>>>>> http://www.cluecon.com
>>>>>
>>>>> FreeSWITCH-users mailing list
>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>> UNSUBSCRIBE:
>>>>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>> http://www.freeswitch.org
>>>>>
>>>>>
>>>>
>>>>
>>>> _________________________________________________________________________
>>>> Professional FreeSWITCH Consulting Services:
>>>> consulting at freeswitch.org
>>>> http://www.freeswitchsolutions.com
>>>>
>>>> 
>>>> 
>>>>
>>>> Official FreeSWITCH Sites
>>>> http://www.freeswitch.org
>>>> http://wiki.freeswitch.org
>>>> http://www.cluecon.com
>>>>
>>>> FreeSWITCH-users mailing list
>>>> FreeSWITCH-users at lists.freeswitch.org
>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>> UNSUBSCRIBE:
>>>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>> http://www.freeswitch.org
>>>>
>>>>
>>>
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org
>>> http://www.freeswitchsolutions.com
>>>
>>> 
>>> 
>>>
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org
>>> http://wiki.freeswitch.org
>>> http://www.cluecon.com
>>>
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>>
>>>
>>
>>
>> --
>> Michael S Collins
>> Twitter: @mercutioviz
>> http://www.FreeSWITCH.org
>> http://www.ClueCon.com
>> http://www.OSTAG.org
>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> 
> 
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>


-- 
Michael S Collins
Twitter: @mercutioviz
http://www.FreeSWITCH.org
http://www.ClueCon.com
http://www.OSTAG.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130125/44178320/attachment.html 


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