<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:12pt"><DIV>Bom dia a todos.</DIV>
<DIV> </DIV>
<DIV>Rodrigo Obrigado pela ajuda, mas ainda não funcionou, como eu disse anteriormente quando uso o while é como se entrrasse me um loop "infinito", segue o erro:</DIV>
<DIV> </DIV>
<DIV><STRONG>Fatal error</STRONG>: Maximum execution time of 30 seconds exceeded in <B>/var/www/asterisk/teste_retorno_cli.php</B> on line <B>34</B></DIV>
<P><STRONG></STRONG> </P>
<P><STRONG>segue a linha:</STRONG></P>
<P><STRONG></STRONG> </P>
<P>while(!$versionok){</P>
<P><STRONG></STRONG> </P>
<P><STRONG>segue uma parte do codigo:</STRONG></P>
<P><STRONG></STRONG> </P>
<P>fputs ($socket, "Action: command\r\n");<BR>fputs ($socket, "Command: core show version\r\n\r\n");<BR>while(!$versionok){<BR> $version .= fread($socket,8192);<BR> if(strpos($version, "Asterisk")){<BR> $pos = strpos($version, "Asterisk");<BR> $version = substr($version, $pos);<BR> $pos_end = strpos($version, "\n");<BR> $version = substr($version, 0, $pos_end);<BR> $versionok = 1;</P>
<DIV><BR></DIV>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><BR>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif"><FONT face=Tahoma size=2>
<HR SIZE=1>
<B><SPAN style="FONT-WEIGHT: bold">De:</SPAN></B> Rodrigo Vian <listas@porttaltecnologia.com.br><BR><B><SPAN style="FONT-WEIGHT: bold">Para:</SPAN></B> asteriskbrasil@listas.asteriskbrasil.org<BR><B><SPAN style="FONT-WEIGHT: bold">Enviadas:</SPAN></B> Sexta-feira, 17 de Julho de 2009 17:45:12<BR><B><SPAN style="FONT-WEIGHT: bold">Assunto:</SPAN></B> Re: [AsteriskBrasil] função fsockopen() para se conectar a CLI<BR></FONT><BR>Segue um exemplo:<BR><BR>$errno=0 ;<BR>$errstr=0 ;<BR><BR>$server="localhost";<BR>$port=5038;<BR>$username="usuario";<BR>$password="senha";<BR><BR>$socket = fsockopen ($server, $port, $errno, $errstr, 20);<BR>if (!$socket) {<BR>Â Â Â Â Â Â Â echo "Nao foi possivel connect no servidor Asterisk. Cheque se Asterisk manager esta ativo - /etc/asterisk/manager.conf\r\n";<BR>Â Â Â Â Â Â Â exit();<BR>} else
{<BR>Â Â Â Â Â Â Â stream_set_blocking($socket, 0);<BR>Â Â Â Â Â Â Â fputs ($socket, "Action: login\r\n");<BR>Â Â Â Â Â Â Â fputs ($socket, "Username: {$username}\r\n");<BR>Â Â Â Â Â Â Â fputs ($socket, "Secret: {$password}\r\n");<BR>Â Â Â Â Â Â Â fputs ($socket, "Events: off\r\n\r\n");<BR>}<BR>while(1){<BR>Â Â Â Â Â Â Â $log .= fread($socket,8192);<BR>Â Â Â Â Â Â Â if(strpos($log, "Message: Authentication failed")){<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â echo "Nao foi possivel connect no servidor Asterisk. Cheque se Asterisk manager esta ativo -
/etc/asterisk/manager.conf\r\n";<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â exit();<BR>Â Â Â Â Â Â Â }<BR>Â Â Â Â Â Â Â if(strpos($log, "Message: Authentication accepted")){<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â break 1;<BR>Â Â Â Â Â Â Â }<BR><BR><BR>fputs ($socket, "Action: command\r\n");<BR>fputs ($socket, "Command: core show version\r\n\r\n");<BR>while(!$versionok){<BR>Â Â Â Â Â Â Â $version .= fread($socket,8192);<BR>Â Â Â Â Â Â Â if(strpos($version,
"Asterisk")){<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â $pos = strpos($version, "Asterisk");<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â $version = substr($version, $pos);<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â $pos_end = strpos($version, "\n");<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â $version = substr($version, 0, $pos_end);<BR>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â $versionok = 1;<BR>Â Â Â Â Â Â Â }<BR>}<BR><BR>Qualquer clica aqui pra te ajudar:<BR><A class=moz-txt-link-freetext
href="http://www.voip-info.org/wiki/view/Asterisk+manager+Example:+PHP" target=_blank rel=nofollow>http://www.voip-info.org/wiki/view/Asterisk+manager+Example:+PHP</A><BR><BR>Espero ter ajudado...<BR><BR>Abraços<BR><BR>Carlos Eduardo escreveu:
<BLOCKQUOTE type="cite">
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">Boa tarde a todos da Lista<BR> <BR>Sou novato com PHP, estou tentando me conectar a CLI e executar o comando database show e escrever o resultado na pagina web,<BR>Estou usando a seguinte função em uma pagina php:<BR> <BR>$socket = fsockopen("192.168.0.215","1234");<BR> fputs($socket, "Action: Login\r\n");<BR> fputs($socket, "UserName: user\r\n");<BR> fputs($socket, "Secret: senha\r\n\r\n");<BR> fputs($socket, "Action: Command\r\n");<BR> fputs($socket, "Command: database show\r\n\r\n");<BR> <BR>porem na hora de escrever o resultado se eu uso o while entra em um loop 'infinito'<BR> <BR>while (!feof($socket)) { <BR> echo fgets($socket, 128); <BR> } <BR> <BR>consegui escrever porem dessa forma:<BR><BR>fgets($socket,128);<BR> $resp01 = fread($socket, 8192);<BR>Â
$resp01 = fread($socket, 8192);<BR> $resp01 = fread($socket, 8192);<BR> $resp01 = fread($socket, 8192);<BR>        echo ($resp01)."<br><br>"; // essa linha é a que me interessa, só que para eu conseguir escreverr tenho que quebra-lá o problema é que não sei o tamanho da matriz<BR>   $respo = split(" :",$resp01);<BR>        echo $respo[0] . "<br>";<BR>        echo $respo[1] . "<br>";<BR>        echo $respo[2] . "<br>";<BR>        echo $respo[3] . "<br>";<BR> $resp01 = fread($socket, 8192);<BR>Â
<BR> fclose($socket);<BR> <BR> <BR>o que eu preciso é escrever na tela os ramais que estão registrados,<BR> <BR>Desde já obrigado pela força.<BR></DIV><BR>
<HR SIZE=1>
Veja quais são os assuntos do momento no Yahoo! + Buscados: <A href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/" target=_blank rel=nofollow>Top 10</A> - <A href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/" target=_blank rel=nofollow>Celebridades</A> - <A href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/" target=_blank rel=nofollow>Música</A> - <A href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/" target=_blank rel=nofollow>Esportes</A> <PRE><HR width="90%" SIZE=4>
_______________________________________________
Openmoko Freerunner, primeiro telefone open source, disponível no Brasil rodando o Android da Google.
<A class=moz-txt-link-freetext href="http://www.neodroid.com/" target=_blank rel=nofollow>http://www.neodroid.com</A>
Compre uma camiseta da AsteriskBrasil.org!
<A class=moz-txt-link-freetext href="http://www.voipmania.com.br/" target=_blank rel=nofollow>http://www.voipmania.com.br</A>
Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na rede Freenode.net: #asterisk-br
_______________________________________________
Lista de discussões AsteriskBrasil.org
<A class=moz-txt-link-abbreviated href="mailto:AsteriskBrasil@listas.asteriskbrasil.org" target=_blank rel=nofollow ymailto="mailto:AsteriskBrasil@listas.asteriskbrasil.org">AsteriskBrasil@listas.asteriskbrasil.org</A>
<A class=moz-txt-link-freetext href="http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil" target=_blank rel=nofollow>http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil</A></PRE></BLOCKQUOTE><BR>Rodrigo S. Vian<BR>Analista TI<BR>Porttal Tecnologia<BR>Soluções em TI & Telecom<BR>http://www.porttaltecnologia.com.br<BR>phone:55+19+3542-9667<BR>mobile:55+19+7808-5121<BR>nextel:55*89*25546<BR><BR>|-- Antes de Imprimir, pense em sua responsabilidade com o Meio Ambiente --|<BR></DIV></DIV></div><br>
<hr size=1>Veja quais são os assuntos do momento no Yahoo! + Buscados: <a href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/">Top 10</a> - <a href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/">Celebridades</a> - <a href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/">Música</a> - <a href="http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/">Esportes</a></body></html>