Hello!
Подскажите плз, пробую использовать perl'овый модуль Asterisk::AMI. Почему-то не обрабатывается event handler для OriginateResponse в зависимости от ActionId.
Делаю так, как в примере
#!/usr/bin/perl -w
use strict;
use EV;
use Asterisk::AMI;
use warnings;
#Create your connection
my $astman = Asterisk::AMI->new(PeerAddr => '10.100.100.100',
PeerPort => '5038',
Username => 'zzzzz',
Secret => 'zzzzz',
Events => 'call',
Handlers => { OriginateResponse => \&OriginateRespEH });
die "Unable to connect to asterisk" unless ($astman);
#Define the subroutines for events
sub OriginateRespEH { my ($ami, $event) = @_;
print "Got Event: $event->{'Event'} \r\n";
}
EV::run
потом из telnet 10.100.100.100 5038 генерю Originate. И вот, если Originate идет с ActionId, то OriginateRespEH не срабатывает, а если без ActionId, то срабатывает.
Подскажите плз, что я не так делаю?
Вообще этот Asterisk::AMI с 2011 не апдейтился, он еще поддерживается кем-то? Или есть какие-нить альтернативы под perl?
Заранее спасибо!
делаете евент на все и смотрите разницу
Задан: 2015-02-21 13:22:17 +0400
Просмотрен: 744 раз
Обновлен: Feb 21 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
делал хэндлеры на все. все эвенты ловятся, кроме OriginateResponse с ActionId (хуже то, что не ловятся originate, сделанные из самого Asterisk::AMI, т.к. они идут с ActionId, которые он сам и генерит). В tcpdump'е от астериска все красиво уходит.
Подозреваю, что глюк все-таки в самом AMI.pm, поэтому и спросил про альтернативы. Ну попробую еще какую-нить предыдущую версию.
andy2108 ( 2015-02-22 01:19:34 +0400 )редактироватьКороче, разобрался, все не так. На OriginateResponse хэндл не работает. Надо делать Originate с callback'ом. Только так. Думаю, что это фича. Два дня тупил, снег на Протасовом прозевал. :(
andy2108 ( 2015-02-25 22:49:34 +0400 )редактировать