[Freeswitch-users] how bind_meta_app works?

lakshmanan ganapathy lakindia89 at gmail.com
Mon Dec 6 09:49:54 MSK 2010


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20101206/e1f0ea18/attachment.html 


More information about the FreeSWITCH-users mailing list