[Freeswitch-users] Flushing the Event buffer in Perl Event Socket

lakshmanan lakindia89 at gmail.com
Tue Nov 10 02:51:14 PST 2009


Hi anthony,
I was in a need of flushing the events buffer without reading it.I've done
the following ESL(Async) program to flush the events.

First I register for events.
I answered the call and playback some message. Now the events would have
been queued.
I, then send "noevents".

After sending that, I again register for events, and when I receive the
events, I've not got the old events. I got only new events.

But I don't know whether it is exactly a way to flush the events or not. I
just need your suggestions or your thoughts on this.
Here is the script:
use lib "/usr/local/freeswitch/scripts/esl";
require ESL;
use IO::Socket::INET;
use Data::Dumper;
my $ip = "192.168..0.0";
my $sock = new IO::Socket::INET ( LocalHost => $ip,  LocalPort => '8447', 
Proto => 'tcp',  Listen => 2,  Reuse => 1 );
die "Could not create socket: $!\n" unless $sock;
my $con;
for(;;) {
		my $new_sock = $sock->accept();
		my $pid = fork();
		if ($pid) {
				close($new_sock);
				next;
		}
		my $host = $new_sock->sockhost();
		my $fd = fileno($new_sock);
		print "Host name is $host\n";
		$con = new ESL::ESLconnection($fd);
		my $info = $con->getInfo();
		my $uuid = $info->getHeader("unique-id");
		printf "Connected call %s, from %s to %s\n", $uuid,
$info->getHeader("caller-caller-id-number"),
$info->getHeader("caller-destination-number");
		$con->filter("Unique-Id", $uuid);
		$con->events("plain", "all");
		$con->execute("answer");
		$con->setEventLock("true");
	
$con->execute("playback","/usr/local/freeswitch/sounds/en/us/callie/ivr/8000/ivr-welcome_to_freeswitch.wav");
		$con->send("noevents");
		sleep(5);
		$con->events("plain", "all");
		while(my $e = $con->recvEvent())
		{
				print $e->serialize();
		}
}


Anthony Minessale-2 wrote:
> 
> read them in a timed loop of some small number of MS until you get a
> timeout
> meaning you have flushed them all.
> 
> 
> On Fri, Oct 30, 2009 at 1:57 AM, velusamy velu
> <velu.technical at gmail.com>wrote:
> 
>> Dear All,
>>       I receiving the events in while loop by using recvEventTimed method
>> in ESL.pm. I have to flush that Event buffer after some particular time.
>> How
>> can I do it?
>>
>> Thanks,
>> Velusamy
>>
>> _______________________________________________
>> 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 <MSN%3Aanthony_minessale at hotmail.com>
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
> IRC: irc.freenode.net #freeswitch
> 
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
> iax:guest at conference.freeswitch.org/888
> googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
> pstn:213-799-1400
> 
> _______________________________________________
> 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
> 
> 

-- 
View this message in context: http://old.nabble.com/Flushing-the-Event-buffer-in-Perl-Event-Socket-tp26125824p26281493.html
Sent from the Freeswitch-users mailing list archive at Nabble.com.





More information about the FreeSWITCH-users mailing list