[Freeswitch-users] Lua session originate - freeswitch crash

Eric Beard eric at loopfx.com
Wed Apr 13 17:59:07 MSD 2011


I've been fiddling around with things this morning and I am using a combination of PHP and Lua.

I use php to simply originate the call (using regular sockets to talk to 8021, not the php mod for ESL, since I can't get it to compile).  In the originate command I specify a Lua script that handles the rest of the call.

I'm using the PHP functions described here:

http://wiki.freeswitch.org/wiki/PHP_Event_Socket

My PHP:


 $fp = event_socket_create("127.0.0.1", 8021, "ClueCon");
 $channelVars = "{ignore_early_media=true,origination_caller_id_number=18778502010}";
 $phoneNum = "17277762768";
 $notificationId = "x";
 $cmd = "bgapi originate $channelVars".
   "sofia/gateway/affinity/".$phoneNum." &lua('test2.lua $notificationId')";
 echo "Sending command: $cmd";
 $response = event_socket_request($fp, $cmd);
 echo $response;
 fclose($fp);

My Lua:


prompt = "/home/eric/test1.wav"
session:streamFile(prompt)
session:hangup()

This is working for the very basic scenario of just waiting for the number to pick up, playing a wav, and then hanging up.  If anybody can point out any major showstoppers that would prevent me from handling significant user interaction, I'd love to hear about them now.  One of the things I'd like to do is incorporate pocketsphinx so that I can do voice reco.  Is that possible from Lua?

Thanks,

-----------------------
Eric Z. Beard, CTO
Loop LLC
w (877) 850-2010 x9249
m (727) 776-2768
eric at loopfx.com


-----Original Message-----
From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Robert Huddleston
Sent: Wednesday, April 13, 2011 9:06 AM
To: 'FreeSWITCH Users Help'
Subject: Re: [Freeswitch-users] Lua session originate - freeswitch crash

I'm sort of in the same boat... I've been working on a project completely in
LUA - using mod_lcr / mod_nibblebill etc - and another contributor wrote to
migrate to ESL... Not that I'm against a challenge - just disappointed I
spent so much time writing the LUA script to now have to convert to ESL.


-----Original Message-----
From: freeswitch-users-bounces at lists.freeswitch.org
[mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Eric
Beard
Sent: Wednesday, April 13, 2011 8:49 AM
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] Lua session originate - freeswitch crash

Thanks Anthony,

I will update to latest.  I last did a pull about 2 weeks ago, FreeSWITCH
Version 1.0.head (git-8c5586b 2011-04-01 14-22-43 -0500).

If I shouldn't be doing this in this script, then what is the recommended
way to originate an outbound IVR call?

My current production application uses Microsoft Speech Server to send
outbound customer service calls, with a B2BUA I wrote to communicate with
terminators.  I'm switching my B2BUA out for FreeSwitch, and it's working
great.  But if possible I'd like to remove MSS from the equation altogether.

Lua looks like a good way to control the call workflow.  Should I be using
ESL from an external application instead?

Thanks for your time,

-----------------------
Eric Z. Beard, CTO
Loop LLC
w (877) 850-2010 x9249
m (727) 776-2768
eric at loopfx.com


-----Original Message-----
From: freeswitch-users-bounces at lists.freeswitch.org
[mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Anthony
Minessale
Sent: Tuesday, April 12, 2011 7:28 PM
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] Lua session originate - freeswitch crash

1) You are not running the latest GIT.  Your scripts works fine on my
development box.
2) the originate method is deprecated.  you can just do
     local new_session =
freeswitch.Session("sofia/gateway/affinity/17277762768", session);
3) In either case you should not be doing what you do in this script
because the whole time you are playing the file to new_session the
original session is blocked not reading or writing any audio.


On Tue, Apr 12, 2011 at 3:02 PM, Eric Beard <eric at loopfx.com> wrote:
> Ok, so I got a little further by trial and error, and realized the 4th arg
is due to lua function calling syntax.  If you use the dot notation on a
function declared with a colon, it expects "this" as the first arg.
>
> My current code looks like this:
>
> -- Originate an outbound call
> local new_session = freeswitch.Session();
> new_session:originate(session, "sofia/gateway/affinity/17277762768", 60);
> new_session:waitForAnswer(session);
> prompt = "/home/eric/test1.wav"
> freeswitch.consoleLog("INFO", "About to play prompt file " .. prompt
.."\n")
> new_session:streamFile(prompt)
> new_session:hangup()
>
> The scary thing about this code is that it crashed freeSwitch when I ran
it.
>
> This is the last thing I saw in the logs:
>
>
> -----------------------
> Eric Z. Beard, CTO
> Loop LLC
> w (877) 850-2010 x9249
> m (727) 776-2768
> eric at loopfx.com
>
>
> -----Original Message-----
> From: freeswitch-users-bounces at lists.freeswitch.org
[mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Eric
Beard
> Sent: Tuesday, April 12, 2011 3:15 PM
> To: FreeSWITCH Users Help
> Subject: Re: [Freeswitch-users] Lua session originate
>
> Thanks Jeff,
>
> When I try NULL I get this:
>
> freeswitch at internal> 2011-04-12 14:49:31.582049 [ERR] mod_lua.cpp:191
Error in originate (arg 2), ex
> pected 'CoreSession *' got 'string'
> stack traceback:
>        [C]: in function 'originate'
>        /usr/local/freeswitch/scripts/test_originate.lua:3: in main chunk
>
> I've been digging through the source code, and I can't find where 4 args
are required.  I see this in freeswitch_lua.cpp:
>
> int Session::originate(CoreSession *a_leg_session, char *dest, int
timeout)
> {
>        int x = CoreSession::originate(a_leg_session, dest, timeout);
>
>        if (x) {
>                setLUA(L);
>        }
>
>        return x;
> }
>
> -----------------------
> Eric Z. Beard, CTO
> Loop LLC
> w (877) 850-2010 x9249
> m (727) 776-2768
> eric at loopfx.com
>
>
> -----Original Message-----
> From: freeswitch-users-bounces at lists.freeswitch.org
[mailto:freeswitch-users-bounces at lists.freeswitch.org] On Behalf Of Jeff
Lenk
> Sent: Tuesday, April 12, 2011 2:42 PM
> To: freeswitch-users at lists.freeswitch.org
> Subject: Re: [Freeswitch-users] Lua session originate
>
> The fourth parameter is the switch_state_handler_table reference and for
most
> uses(script language) you should just pass null  but I dont use lua so I
> dont know the details on that.
>
> --
> View this message in context:
http://freeswitch-users.2379917.n2.nabble.com/Lua-session-originate-tp626612
1p6266239.html
> Sent from the freeswitch-users mailing list archive at Nabble.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
>
> _______________________________________________
> 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
>
> _______________________________________________
> 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
>



-- 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/
Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale at hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org
googletalk:conf+888 at conference.freeswitch.org
pstn:+19193869900

_______________________________________________
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

_______________________________________________
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


_______________________________________________
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



More information about the FreeSWITCH-users mailing list