-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Não, ele não é um cliente SIP ele é só um proxy para a interface manager do asterisk.
Pablo Weyne wrote: > Não dá p/ usar esse script sem que necessite depender do Asterisk? Por > exemplo, eu coloco os dados de uma conta SIP, e ele faz a discagem. > > > ----- Original Message ----- > *From:* Diogo Cosito <mailto:diogocosito66 em hotmail.com> > *To:* asteriskbrasil em listas.asteriskbrasil.org > <mailto:asteriskbrasil em listas.asteriskbrasil.org> > *Sent:* Tuesday, July 11, 2006 10:43 PM > *Subject:* Re: [AsteriskBrasil] Discando pela WEB > > 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 > <mailto:bernardo.vieira em terra.com.br>> > >Reply-To: asteriskbrasil em listas.asteriskbrasil.org > <mailto:asteriskbrasil em listas.asteriskbrasil.org> > >To: asteriskbrasil em listas.asteriskbrasil.org > <mailto:asteriskbrasil em listas.asteriskbrasil.org> > >Subject: Re: [AsteriskBrasil] Discando pela WEB > >Date: Mon, 10 Jul 2006 11:14:13 -0300 > > > 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 >> <mailto:bernardo.vieira em terra.com.br>> > >> Reply-To: asteriskbrasil em listas.asteriskbrasil.org >> <mailto:asteriskbrasil em listas.asteriskbrasil.org> > >> To: wellingtoncs em gmail.com <mailto:wellingtoncs em gmail.com>, >> asteriskbrasil em listas.asteriskbrasil.org >> <mailto: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> > >>>> <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 <mailto:wellingtoncs em gmail.com> > >>>> > >>>> > >>>> > ------------------------------------------------------------------------ > >>>> > >>>> _______________________________________________ > >>>> LIsta de discussões AsteriskBrasil.org > >>>> AsteriskBrasil em listas.asteriskbrasil.org >> <mailto: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 >> <mailto:AsteriskBrasil em listas.asteriskbrasil.org> > > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil > > > _______________________________________________ > > Acesse o wiki AsteriskBrasil.org: > > http://www.asteriskbrasil.org > > #!/usr/bin/perl -w # getdial.pl # Copyright (C) 2006 Bernardo Vieira bernardo.vieira em terra.com.br > <mailto: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 <mailto: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 > _______________________________________________ > LIsta de discussões AsteriskBrasil.org > AsteriskBrasil em listas.asteriskbrasil.org > <mailto:AsteriskBrasil em listas.asteriskbrasil.org> > http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil > _______________________________________________ > Acesse o wiki AsteriskBrasil.org: > http://www.asteriskbrasil.org > __________ NOD32 1.1655 (20060712) Information __________ > This message was checked by NOD32 antivirus system. > http://www.eset.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 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFEtULQ2QVs8jsa1mQRAsmKAJwM+1lwXEwnqeXTqKBAVNS2QW/wNwCgmaLc YbhA7NCAbKNIQh70ZOV1vnw= =rCAu -----END PGP SIGNATURE-----