12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/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";
|