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