1 | изначальная версия редактировать | |
эта пробелма не имеет простого решения.
сложное решение - слушаеть евенты астриска и при окончании перевода(кажися по link) запускать chanspy на отдельном канале чтоб сказать абонентам что перевод завершен.
Укровень решения - експерт/guru.
2 | No.2 Revision редактировать |
эта пробелма не имеет простого решения.
сложное решение - слушаеть евенты астриска и при окончании перевода(кажися по link) запускать chanspy на отдельном канале чтоб сказать абонентам что перевод завершен.
Укровень Уровень решения - експерт/guru.
3 | No.3 Revision редактировать |
эта пробелма не имеет простого решения.
сложное решение - слушаеть евенты астриска и при окончании перевода(кажися по link) запускать chanspy на отдельном канале чтоб сказать абонентам что перевод завершен.
Уровень решения - експерт/guru.експерт/guru.1
выглядит както вот так
sub save_transfer {
my ($ami, $event) = @_;
if($event->{'TransferMethod'} eq "SIP"){
my $chan=$event->{'TargetChannel'};
print "Detected transfer $chan\n";
$transfer{$chan}=1;
}else{
print 'transfer ',Dumper($event),"\r\n";
}
}
sub save_masquerade {
my ($ami, $event) = @_;
my $chan=$event->{'Original'};
if(exists $transfer{$chan}){# we have such transfer
my $new=$event->{'Clone'};
print "Detected masquerade $chan $new \n";
delete($transfer{$chan});
$masq{$new}=$chan;
}
}
sub do_hold_end {
my ($ami, $event) = @_;
if($event->{'State'} eq "Stop"){
#print "Detected moh stop \n";
my $chan=$event->{'Channel'};
if(exists $masq{$chan}){
print "Detected moh stop on $chan \n";
$ami->send_action({ Action => 'Originate',
Channel=> 'Local/s@custom-play-spy',
Application => 'Playback',
Data => $sound_file,
Variable => "chan=$chan",
Async => 1
},sub { return }, 7);
delete($masq{$chan});
}else{
print "detected MOH stop,but no transfer recorded\n";#,Dumper($event);
}
}else{
}
}
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.