Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

perl Asterisk::AMI вопрос по OriginateResponse

0

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

andy2108 Gravatar andy2108
1 1 1

обновил 2015-02-21 13:35:45 +0400

Comments

делал хэндлеры на все. все эвенты ловятся, кроме 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 )редактировать

1 Ответ

0

делаете евент на все и смотрите разницу

ссылка удалить спам редактировать

ответил 2015-02-21 14:35:53 +0400

meral Gravatar meral flag of Ukraine
21228 24 19 169
http://pro-sip.net/

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2015-02-21 13:22:17 +0400

Просмотрен: 290 раз

Обновлен: Feb 21 '15

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.