Bernardo, tudo bem? Obrigado pela sua aula, hehehe eu estou iniciando agora e vejo que pessoas como você são bem atenciosas, muito obrigado. Na realidade eu estou usando o asterisk-1.0.9 e gostaria de implementar isso no site de minha empresa, na intranet para hep-desk, mas acho que no meu caso seria interessante o php, né? O que acha? Não entendi muito bem o código pearl que você fez, tipo posso utilizar ele no asterisk-1.0.9? Precisarei de pearl instalado no server, né? Mas é que ainda não estou conseguindo visualizar o código funcionando... desculpe a ignorância, mas espero um dia poder colaborar com vocês no que puder.
Muito obrigado e um abraço Att Diogo. >From: Bernardo Vieira <bernardo.vieira em terra.com.br> >Reply-To: asteriskbrasil em listas.asteriskbrasil.org >To: asteriskbrasil em listas.asteriskbrasil.org >Subject: Re: [AsteriskBrasil] Discando pela WEB >Date: Mon, 10 Jul 2006 11:14:13 -0300 > >-----BEGIN PGP SIGNED MESSAGE----- >Hash: SHA1 > >Diogo, >Acho que o que está acontecendo é que o script de php está tentando >inicializar a ligação no contexto 'default' e se eu não me engano o AAH >não permite muita coisa nesse contexto. Tente alterar o contexto para >'from-internal'. Outra coisa que você pode fazer é, ao invés de >acompanhar a ligação via CLI, conecte via telnet na porta do manager, >ele é muito mais detalhado. > >Bom, de toda forma, depois que você mandou sua primeira pergunta, eu >resolvi dar uma olhada no script perl que eu tinha te passado e gostei >do negócio. Então resolvi brincar com o script e acabei fazendo as >seguintes alterações: >1) O script original desenhava o form com os campos para fazer a ligação >e passava os parâmetros por POST, ou seja, você não poderia colocar a >linha de discagem em um link <a href> por exemplo. O script que eu fiz >funciona com o método GET para que você usar uma url simples para discar. > >2) O script original produzia html, ou seja, para alterar sua aparência >você teria que modificar o script. A minha versão não produz html >nenhum, você simplesmente coloca a url em um link e o script te >redireciona de volta para a mesma página com o status da chamada, ou >seja, você põe a cara que você quiser na página. > >Bom, é isso aí, o script ainda está meio toscão, mas dá para usar, se >você, ou qualquer um quiser me ajudar no desenvolvimento dele, eu >ficaria feliz. > > >Diogo Cosito wrote: > > Bernando, boa noite. > > Eu baixei o código php, para discagem pela web, mas não entendi muito >bem o > > que devo fazer, tipo instalei o código dentro de um servidor web, >externo ao > > asterisk e liberei no manager.conf para acesso externo, mas não inicia a > > discagem.. > > Fiz desta maneira: > > specify the channel (extension) you want to receive the call requests >with > > #e.g. SIP/XXX, IAX2/XXXX, ZAP/XXXX, etc > > $strChannel = "sip/1000"; > > > > #specify the context to make the outgoing call from. By default, AAH >uses > > from-internal > > #Using from-internal will make you outgoing dialing rules apply > > $strContext = "default"; > > > > #specify the amount of time you want to try calling the specified >channel > > before hangin up > > $strWaitTime = "30"; > > > > #specify the priority you wish to place on making this call > > $strPriority = "1"; > > > > #specify the maximum amount of retries > > $strMaxRetry = "2" > > > > Mas na CLI do asterisk, não reporta nada. > > Poderia me ajudar? > > > > Muito obrigado > > > > Att > > > > Diogo > >> From: Bernardo Vieira <bernardo.vieira em terra.com.br> > >> Reply-To: asteriskbrasil em listas.asteriskbrasil.org > >> To: wellingtoncs em gmail.com, asteriskbrasil em listas.asteriskbrasil.org > >> Subject: Re: [AsteriskBrasil] Discando pela WEB > >> Date: Fri, 07 Jul 2006 19:18:57 -0300 > >> > > Solução em php (você vai ter que mexer no código para alocar > > dinamicamente os dois lados da ligação): > > >http://www.voipjots.com/2006/02/click-to-call-with-your-asteriskhome.html > > > > Solução em perl (não mexi com esse aí porque eu prefiro php que perl, > > sim eu sou preguiçoso :P): > > http://www.azxws.com/asterisk/ > > > > Wellington Sampaio wrote: > >>>> Olá Pessoa, > >>>> > >>>> Gostaria de saber se você sabem, já configuraram uma >regra > >>>> como esta: > >>>> > >>>> Eu acesso uma página, digamos que www.asterisk.com.br > >>>> <http://www.asterisk.com.br/>, lá eu entro com o número destinatário >e > >>>> número destino. O sistema faz uma ligação para o número destinatário >e > >>>> em seguida liga para o destino. Ele gera uma chamada para os dois > >>>> números, assim colocando eles ativos. > >>>> > >>>> Se alguém tiver alguma idéia de como faço isso, por >favor, > >>>> me ajudem. > >>>> > >>>> Att > >>>> > >>>> > >>>> > >>>> Wellington Sampaio > >>>> > >>>> wellingtoncs em gmail.com > >>>> > >>>> > >>>> >------------------------------------------------------------------------ > >>>> > >>>> _______________________________________________ > >>>> 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 > > > _________________________________________________________________ > > DOWNLOAD: Emoticons animados 'Copa 2006' para usar no MSN > > http://copa.br.msn.com/extra/emoticons/ > > > _______________________________________________ > > 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 > > >-----BEGIN PGP SIGNATURE----- >Version: GnuPG v1.4.1 (MingW32) >Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > >iD8DBQFEsmC12QVs8jsa1mQRAgtRAJ0TCYzRFvTwAxjySM6NuMjktO9YjQCfTb6S >cEdRDWGJx/3LqOoiDczUSUU= >=80tG >-----END PGP SIGNATURE----- >#!/usr/bin/perl -w ># getdial.pl ># Copyright (C) 2006 Bernardo Vieira bernardo.vieira em terra.com.br ># ># Script para iniciar uma chamda no Asterisk através de uma ># URL. Recebe parâmetros atraves do metodo get, permitindo ># que seja utilizado em uma tag <a href...>Discar</a>. ># ># Baseado no script TACI - Trivial Asterisk Call Interface v.02 ># de Tony Wasson wasson em azxws.com ># ># Certifique-se que ha um handler para extensões inválidas no ># contexto [default] do extensions.conf: ># exten => s,1,Playback(invalid) >use Net::Telnet (); >use Net::Netmask(); >use CGI qw(:standard); >use CGI::Carp qw(warningsToBrowser fatalsToBrowser); > ># ># Configuracoes: ># > >$managerHost='127.0.0.1'; # endereco do servidor rodando o >Asterisk >$managerPort=5038; # porta da interface de gerenciamento >do Asterisk > >$managerUser='ususario'; # nome do usuario manager do Asterisk > ># TODO: proteger esta senha >$managerSecret='senha'; # senha do manager > >$defaultContext='from-internal'; # contexto padrao para a ligacao, pode >ser especificado > # na query string, senao este valor e > utilizado > >$defaultCID='callerid'; # Caller Id padrao pode ser >especificado na query >string > >@allowedNetworks= ('192.168.1.0/24'); # lista de redes (clientes) que podem >usar este script > >@allwedReferers=('http://192.168.1.1/teste/teste.html'); # lista de paginas >que podem usar este script > > ># ># Prototipos ># >sub isInNetwork; >sub testIp; >sub testReferer; > ># verifica se o cliente esta na lista de clientes autorizados >&testReferer($ENV{HTTP_REFERER}, em allwedReferers) or die "Pagina nao >autorizada a user este script: ", $ENV{HTTP_REFERER}; >&testIp($ENV{REMOTE_ADDR}, em allowedNetworks) or die "Cliente nao autorizado >a usar este script: ", $ENV{REMOTE_ADDR}; > ># ># Parametros ># >my $phonetype = param('type') || "" ; >my $account = param('account') || ""; >my $callerid = param('callerid') || $defaultCID; >my $context = param('context') || $defaultContext; >my $exten = param('exten') || ""; >my $callid = param('callid') || 0; > > ># Limpar parametros >if ($exten) {$exten =~ s/([^A-Z0-9a-z\/@\.])//g;} >else {$exten="";} > >if ($context) {$context =~ s/([^A-Z0-9a-z\-])//g;} >else {$context="";} > >if ($account) {$account =~ s/([^A-Z0-9a-z])//g;} >else {$account="";} > ># Testa se a extensao e valida (mais de dois digitos) ># TODO: melhorar o teste > >if (not $exten =~ /[0-9][0-9]/) { die "Destino invalido, deve conter pelo >menos 2 numeros!"; }; > >#print header; > ># Abre a conexao ao asterisk... >$tn = new Net::Telnet ( Port => $managerPort, > Prompt => '/.*[\$%#>] $/', > Output_record_separator => '', > Errmode => 'return' > ); > >$tn->open("$managerHost"); >$tn->waitfor('/0\n$/'); >$tn->print("ACTION: LOGIN\nUSERNAME: $managerUser\nSECRET: >$managerSecret\n\n"); >$tn->waitfor('/Authentication accept*/') > or die "Nao foi possivel conectar ao asterisk: ", $tn->lastline; > ># Abre a chamada >$tn->print("ACTION: ORIGINATE\nExten: $exten\nContext: $context\nChannel: >$phonetype/$account\nPriority: 1\nCallerid: $callerid\n\n"); >$tn->waitfor('/Event: Newchannel.*/') or die "Nao foi possivel deteminar o >status da chamada: ", $tn>lastline; >$tn->print("Action: LOGOFF\n\n"); > ># Chamada aceita ># TODO: monitorar melhor a ligacao, mesmo que o numero for invalido o >programa chega aqui. >print "Location: $ENV{HTTP_REFERER}?callid=$callid&status=0\n\n"; >exit 0; > > > >sub isInNetwork { > my ($cidr,$ipaddress) = @_; > local $network = new Net::Netmask($cidr); > return $network->match($ipaddress); >} > >sub testIp { > my($ip, em allowedNetworks) = @_; > my($matchFound) = 0; > foreach my $network (@allowedNetworks) { > $matchFound = isInNetwork($network,$ip); > if ($matchFound) { > last; > } > } > return $matchFound; >} > >sub testReferer{ > my($referer, em allowedReferers) = @_; > return scalar(grep(/$referrer/, em allowedReferers)); >} > > > > > teste > >_______________________________________________ >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 _________________________________________________________________ Descubra aqui como mandar Torpedos Messenger! http://www.msn.com.br/artigos/maguire/default.asp http://www.msn.com.br/artigos/maguire/default.asp