Hi Michael,

a PHP script connect to Event socket and launch "luarun  call.lua <legA number> <legB number> <sip account number>

Script call.lua, upload sip account password from a DB and then call A number and B number using the same SIP account, bridging them.
What I'd like to do is:

- place call to legB number only after legA has answered the call
- detect hangupCause on both legs to check if something goes wrong
- return SUCCESS or hangup cause to the PHP script

Is it science fiction? With Asterisk isn't so hard to do and, since I'm in love with FS, please don't disappoint me :-)

Chris B.
 

Il 13/09/2011 18:44, Michael Collins ha scritto:
How are you calling this Lua script to begin with? What is the big picture, that is, what is the problem you're solving? Some context might help us give you a better answer.

-MC

On Tue, Sep 13, 2011 at 5:21 AM, <chrisbware@interfree.it> wrote:
Hi,
 
thank you for your help, but doesn't work.
legA:ready() is true when the first session start and not when the call is answered.
So legB is called at the same time.
 
Any other suggestion?
 
 
 
 
-----Messaggio originale-----
Da: Sergey Scheglov <sid@eltc.ru>
Inviato il: 13 Set 2011 - 17:15
A: freeswitch-users@lists.freeswitch.org



? 13 Sep 2011 09:39:33 -0000
chrisbware@interfree.it wrote:

>
> Hi guys,
>
> I've read anything on this argument on Wiki but I can't find a
> complete answer.
>
> I need to bridge two calls in Lua, waiting the first to be answered.
> My basic script is:
>
> local GwParams =
> "origination_caller_id_number="..gateway..",sip_auth_username="..gateway..",sip_auth_password="..sip_passwd
> local slegA =
> "[ignore_early_media=false,"..GwParams.."]sofia/external/"..callee.."@"..sip_domain
> local slegB =
> "[ignore_early_media=true,"..GwParams.."]sofia/external/"..called.."@"..sip_domain
>
> legA = freeswitch.Session(slegA);
> legB = freeswitch.Session(slegB);
> freeswitch.bridge(legA, legB);
>
>
> It works but legA and legB are called at the same time. Using:
>
> while (legA:answered()== false) do end;
>
> between the two session do the job but called parties can't hear
> audio.
>
> I promise to add a script on wiki if you help me ! :)
>
> Thanks in advance.
>
>
> -------------------------------------------------------------------------------
> Valore legale alle tue mail
> InterfreePEC - la tua Posta Elettronica Certificata
> http://pec.interfree.it
> -------------------------------------------------------------------------------
>
>
>
> 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
>

Try:

legA = freeswitch.Session(slegA);
if (legA:ready()) then
legB = freeswitch.Session(slegB, legA);
freeswitch.bridge(legA, legB);
end

----

Scheglov Sergey


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


-------------------------------------------------------------------------------
Valore legale alle tue mail
InterfreePEC - la tua Posta Elettronica Certificata
http://pec.interfree.it
-------------------------------------------------------------------------------


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