Hey,

I posted this earlier as a question, but I think this might be relevant. ttp://pastebin.freeswitch.org/20508. The workaround (hack) for my issue is to check the connection state ($con->connected()) every time you loop and reconnect and subscribe for events again when that returns false.

On Sat, Jan 26, 2013 at 5:33 AM, <freeswitch-users-request@lists.freeswitch.org> wrote:
Send FreeSWITCH-users mailing list submissions to
        freeswitch-users@lists.freeswitch.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
or, via email, send a message with subject or body 'help' to
        freeswitch-users-request@lists.freeswitch.org

You can reach the person managing the list at
        freeswitch-users-owner@lists.freeswitch.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of FreeSWITCH-users digest..."

Today's Topics:

   1. Re: Executing multiple applications in parallel (Michael Collins)
   2. Re: Executing multiple applications in parallel (JP)


---------- Forwarded message ----------
From: Michael Collins <msc@freeswitch.org>
To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org>
Cc: 
Date: Fri, 25 Jan 2013 16:10:37 -0800
Subject: Re: [Freeswitch-users] Executing multiple applications in parallel
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@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@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 -- 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
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@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@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



---------- Forwarded message ----------
From: JP <jaykris@gmail.com>
To: FreeSWITCH Users Help <freeswitch-users@lists.freeswitch.org>
Cc: 
Date: Fri, 25 Jan 2013 16:32:50 -0800
Subject: Re: [Freeswitch-users] Executing multiple applications in parallel
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@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@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@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 -- 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
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@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@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@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org



_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org




--
I'd love to change the world, but they wont gimme the source code to it