forked from Mirrors/freeswitch
50 lines
866 B
Perl
Executable File
50 lines
866 B
Perl
Executable File
#!/usr/bin/perl
|
|
use FreeSWITCH::Client;
|
|
use Data::Dumper;
|
|
|
|
my $fs = init FreeSWITCH::Client {} or die "Error $@";
|
|
my $pid;
|
|
|
|
for (;;) {
|
|
$fs->accept();
|
|
|
|
if (!($pid = fork)) {
|
|
last;
|
|
}
|
|
}
|
|
|
|
my $data = $fs->call_data();
|
|
|
|
#print Dumper $data
|
|
print "Call: $data->{'caller-channel-name'} $data->{'unique-id'}\n";
|
|
|
|
|
|
$o = $fs->call_command("answer");
|
|
#to turn on events when in async mode
|
|
$o = $fs->raw_command("myevents");
|
|
$o = $fs->call_command("playback", "/ram/swimp.raw");
|
|
|
|
|
|
#comment exit in async mode
|
|
#exit;
|
|
|
|
while(my $r = $fs->readhash(undef)) {
|
|
if ($r->{socketerror}) {
|
|
last;
|
|
}
|
|
|
|
if ($r->{has_event}) {
|
|
print Dumper $r->{event};
|
|
}
|
|
if ($r->{event}->{'event-name'} !~ /execute/i) {
|
|
printf "uuid: $data->{'unique-id'}\n";
|
|
$o = $fs->call_command("break");
|
|
$o = $fs->call_command("hangup");
|
|
}
|
|
}
|
|
|
|
$fs->disconnect();
|
|
print "done\n";
|
|
|
|
|