Ответы пользователя по тегу VoIP
  • Asterisk: Очереди своими силами, как?

    Celebro
    @Celebro Автор вопроса
    Вроде как нашёл решение. Может кому пригодиться.
    AGI там просто для теста, перебирает пару номеров в бесконечном цикле. Можно усложнить.
    и, при поднятии трубки, холд автоматически прерывается.
    Осталась ещё одна проблема, если я отбиваю с мобилы звонок, то клиента тут же сбрасывает. Хотя у клиента всё так же играет холд пока я не возьму трубку. Может можно как-то отлавливать состояния, и продолжать обзвон дальше по списку??
    context Incoming {
          _X. =>  {
                    Answer();
                    Ringing();
                    Wait(2);
                    agi(incoming.agi,${CALLERID(num)},${EXTEN});
           };

    incoming.agi
    #!/usr/bin/env perl
    use Asterisk::AGI;
    
    my $AGI = new Asterisk::AGI;
    $|=1;
    my ($callerid, $exten) = @ARGV;
    
    print STDOUT "SET MUSIC ON HOLD DEFAULT\n"  # Запускаем музочку
    while(1){
        $AGI->exec("Dial","SIP/1001,15,Ttgm");
        my $availstat1 = $AGI->get_variable('DIALSTATUS');
        $AGI->exec("Dial","SIP/1002,15,Ttgm");
        my $availstat2 = $AGI->get_variable('DIALSTATUS');
        $AGI->exec("Wait","7");
        $AGI->exec("Background","message_try_again");
        print STDOUT "SET MUSIC ON HOLD DEFAULT\n";
    };


    Да, можно так же выключить MoH.
    print STDOUT "SET MUSIC ON HOLD OFF\n";
    Ответ написан
    2 комментария