[AsteriskBrasil] Ligações Simultaneas - Se alguem precisar

sunamito sunamito em aol.com
Domingo Fevereiro 12 11:44:21 BRST 2006


vendo memoria de 256    R$105.00      e 512   R$155.00

alexm em unetvale.com.br escreveu:

> Olá a todos,
> tomei a liberdade fiz algumas modificação no script do Beethoven...
> nesse não há nescessidade de informar o canal, a ser verificando 
> dentro do script
> e sim vc faz a refencia passando como paramentro na linha agi
> segue script, e referencias a ser colocada no dialplan
>
> abraços..
>
> exemplo básico no dialplan,,fica melhor dentro de uma macro...
>
> *exten => 300,1,agi(emuso.pl,${EXTEN});
> exten => 300,n,dial(SIP/30,30,tTr);
> exten => 300,50,playback(astcc-sbusy)
> exten => 300,n,busy(5)
> exten => 300,n,hangup
> *
>
> //////////SCRIPT
>
> *# Script Original
> # ================================
> # Comunidade Warchalking #www.warchalking.com.br
> #
> # SCRIPT BY Beethoven
> # beethoven em warchalking.com.br
> # ================================
> #
> # Modificado por Alex Montoanelli
> # Unetvale
> # www.unetvale.com.br
> # alexm em unetvale.com.br
> #
> *
>
> *
> *
>
> *#!/usr/bin/perl*
>
> *use Net::Telnet();
> use Asterisk::AGI();
>
>
> ############# CONFIGURACOES ##############
> $host_manager = "youhost";
> $user_manager = "youruser";
> $senha_manager = "yourpass";
> ############################################
>
> $AGI = new Asterisk::AGI();
> $t = new Net::Telnet (Port => 5038, Timeout => 2, 
> Output_record_separator => '',Prompt => '/.*[\$%#>] $/');
>
>
> $telefone = $ARGV[0];
>
> $AGI->verbose("Verificando o stauts da ext $telefone");
>
> $t->open("$host_manager");
> $t->waitfor('/0\n$/');
> $login = "Action: Login\nUsername: $user_manager\nSecret: 
> $senha_manager\n\n";
> $t->print($login);
> $t->waitfor('/Authentication.*/');
> @lines = $t->cmd(String => "Action: command\nCommand: show 
> channels\n\n", Prompt => '/--END COMMAND--/', Errmode => "die");
>
>                foreach $line (@lines){
>                if ($line =~ "^SIP/$telefone") { $em_uso = 1};
>                }
>
>        if($em_uso){
>        $res = $AGI->verbose("Linha Ocupada, parando");
>        $res = $AGI->set_priority('50');
>        }
>        unless($em_uso){
>        $res = $AGI->verbose("Linha ok, prosseguindo");
>        };*
>
>
>
> Beethoven wrote:
>
>> Seguinte: é meio um bolo mas funciona.
>> dentro do /etc/asterisk/manager.conf
>> deixe mais ou menos assim:
>> ali em permit coloque o seu host pra loga
>> ------------------------------------------------------------------------
>> ;
>> ; Asterisk Call Management support
>> ;
>> [general]
>> enabled = yes
>> port = 5038
>> bindaddr = 0.0.0.0
>>
>> [user_manager]
>> secret = senha_manager
>> deny=0.0.0.0/0.0.0.0
>> permit=127.0.0.1/255.255.255.0
>> permit=200.200.200.123
>> permit=localhost
>> read = system,call,log,verbose,command,agent,user
>> write = system,call,log,verbose,command,agent,user
>> -------------------------------------------------------------------------- 
>>
>> -- 
>> -
>> vc precise destes dois modulos do perl instalados:
>> Net::Telnet
>> Asterisk::AGI
>>
>> basta entra no site www.cpan.org e lah em modulos search baixar e
>> instalar..
>> conforme a distribuicao do linux
>> precisa do modulo perl-devel instalado para compilar os modulos
>> -------------------------------------------------------------------------- 
>>
>> -- 
>> -
>> quando instalar o Net::Telnet, precisa alterar um troço do modulo pra 
>> naum
>> dar pau, aqui instalou em:
>> /usr/lib/perl5/site_perl/5.8.6/Net/Telnet.pm
>>
>> edite o arquivo e comente a linha que tem:
>> return $self->error("pattern match read eof") if $s->{eofile};
>>
>> ficando assim:
>> # return $self->error("pattern match read eof") if $s->{eofile};
>> -------------------------------------------------------------------------- 
>>
>> -- 
>> -
>> agora copie este escript para dentro do diretorio AGI
>> que conforme a instalacao fica em:
>>   
>
>
>> /var/lib/asterisk/agi-bin
>>
>> grave como fifo.444 e altere na parte das configuracoes para os teus 
>> dados
>> ------------------------------------------------------------------------- 
>>
>> #!/usr/bin/perl
>> # Comunidade Warchalking Brazil
>> # www.warchalking.com.br
>> #
>> # SCRIPT BY Beethoven
>> # beethoven em warchalking.com.br
>> #
>> use Net::Telnet ();
>> use Asterisk::AGI;
>> ############# CONFIGURACOES ##############
>> $host_manager = "200.200.200.1";
>> $user_manager = "user_manager";
>> $senha_manager = "senha_manager";
>> $telefone = "SIP/900900";
>> ############################################
>> $t = new Net::Telnet (Timeout => 10,
>>                           Port=> 5038);
>> $t->input_log(log_manager);
>> $t->open("$host_manager");
>>
>> $t->cmd("Action: login\nUsername: $user_manager\nSecret:
>> $senha_manager\nEvents: off\n\nAction: Status\nLink:$telefone\n\nAction:
>> logoff\n\n");
>> open(ARQUIVO,"< log_manager");
>> @arquivo = <ARQUIVO>;
>> close(ARQUIVO);
>> foreach $linha(@arquivo){
>>     if($linha =~ /State: Up/){$em_uso = 1}
>>                              }
>>
>> $AGI = new Asterisk::AGI;
>> print STDERR "------------------------------------------";
>> if($em_uso){$res = $AGI->exec('Hangup')};
>> unless($em_uso){$res = $AGI->exec('Dial', '$telefone')};
>>
>> ------------------------------------------------------------------------- 
>>
>>
>> salve e de o comando:
>> chmod 755 fifo.444
>>
>> -------------------------------------------------------------------------- 
>>
>> blz... agora é soh configura no extensions.conf que fica:
>> exten => _900900,1,AGI(fifo.444)
>> -------------------------------------------------------------------------- 
>>
>>
>> blz.. eh isso.. qualquer coisa da um toque
>>
>>
>> abraço
>>
>> Beethoven
>> beethoven em warchalking.com.br
>>
>> _______________________________________________
>> LIsta de discussões AsteriskBrasil.org
>> AsteriskBrasil em listas.asteriskbrasil.org
>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>
>> _______________________________________________
>> Acesse o  wiki AsteriskBrasil.org:
>> http://www.asteriskbrasil.org
>>   
>
>
>_______________________________________________
>LIsta de discussões AsteriskBrasil.org
>AsteriskBrasil em listas.asteriskbrasil.org
>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>_______________________________________________
>Acesse o  wiki AsteriskBrasil.org:
>http://www.asteriskbrasil.org
>  
>




Mais detalhes sobre a lista de discussão AsteriskBrasil