[Freeswitch-users] how bind_meta_app works?

lakshmanan ganapathy lakindia89 at gmail.com
Fri Dec 10 07:16:06 MSK 2010


Hi Collins,
Thanks for your suggestion. I've just now figured out what was the problem.

I believe, It is because of setting the setEventLock to true. I've set that
to false and after that it works as expected.

Here is my understanding.
SetEventLock=true.
In A leg, currently bridge application is running. When B leg presses the
#1, since SetEventLock is set to true, it was queued for execution.
When B hangup the call ( bridge application got completed ) , the queued
application got executed.

Somebody can correct me if I am wrong.



On Thu, Dec 9, 2010 at 11:42 PM, Michael Collins <msc at freeswitch.org> wrote:

> Did you try enabling on the A leg also?
> $EslCon->execute("bind_meta_app","1 ab o event::appli=testing")
>
> Just curious as I've never actually tried this before.
> -MC
>
> On Wed, Dec 8, 2010 at 5:01 AM, lakshmanan ganapathy <lakindia89 at gmail.com
> > wrote:
>
>> Hi all,
>> Is my understanding is right??. If so, is it possible to run applications
>> in A leg...
>>
>>
>> On Mon, Dec 6, 2010 at 12:19 PM, lakshmanan ganapathy <
>> lakindia89 at gmail.com> wrote:
>>
>>> Hi all,
>>> I was experimenting the bind_mea_app and I have a doubt.
>>> There is a call from 1000 to FreeSwitch extension and it is connecting to
>>> event outbound socket.
>>> I've the following script in place.
>>>
>>> #!/usr/bin/perl
>>> use strict;
>>> use warnings;
>>> use Data::Dumper;
>>> use lib '/usr/src/freeswitch/libs/esl/perl/';
>>> use IO::Socket::INET;
>>> use ESL;
>>>
>>> my $SOCK = new IO::Socket::INET ( LocalHost => 'localhost',  LocalPort =>
>>> '8447',  Proto => 'tcp',  Listen => 10,  Reuse => 1 );
>>> unless ($SOCK)  {
>>>                 print("Could not create socket: $!");
>>>                 exit(2);
>>> }
>>>
>>> while (1)  {
>>>                 # Wait for any client through accept function in socket
>>> module.
>>>                 my $new_sock = $SOCK->accept();
>>>                 next if (not defined($new_sock));
>>>                 # Get socket host
>>>                 my $host = $new_sock->sockhost();
>>>                 print("Got a client accepted from $host\n");
>>>                 my $pid = fork();
>>>                 if ($pid) {
>>>                                 close($new_sock);
>>>                                 next;
>>>                 }
>>>                 my $fd = fileno($new_sock);
>>>                 print("Newly forked child, pid: $$\n");
>>>                 my $EslCon = new ESL::ESLconnection($fd);
>>>                 print "Connection created successfully\n";
>>>                 my $info = $EslCon->getInfo();
>>>                 $EslCon->setEventLock("true");
>>>                 my $uuid = $info->getHeader("unique-id");
>>>                 print Dumper $info->serialize();
>>>                 $EslCon->execute("set","bind_meta_key=#");
>>>                 $EslCon->execute("bind_meta_app","1 b o
>>> event::appli=testing");
>>>                 my $api =
>>> $EslCon->execute("bridge","{ignore_early_media=true}freetdm/1/a/xxxxxxxxx");
>>> }
>>>
>>> The script called to the number that was dialed. In that number I pressed
>>> #1, but the event was not sent,
>>> and I assume that the bridge application is executing in the A leg ( is
>>> it correct?? ) . So only after that bridge application gets completed the
>>> event gets triggered out.
>>>
>>> If I execute the application in the B leg, then it is working fine, since
>>> there is no application that is running at that time.
>>> Now I wanted to know if there is any way to run the application on A leg,
>>> I need that application to be executed even the bridge is not completed.
>>>
>>>
>>
>> _______________________________________________
>> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20101210/ff79a9c4/attachment-0001.html 


More information about the FreeSWITCH-users mailing list