<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 novamente a todos.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Segue a solução que eu encontrei:</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT color=#c00000>$conta_matriz = 0;<BR></FONT>&nbsp;$socket = fsockopen("192.168.0.215","1234");<BR>&nbsp;fputs($socket, "Action: Login\r\n");<BR>&nbsp;fputs($socket, "UserName: asterisk\r\n");<BR>&nbsp;fputs($socket, "Secret: asterisk\r\n\r\n");<BR>&nbsp;fputs($socket, "Action: Command\r\n");<BR>&nbsp;fputs($socket, "Command: database show\r\n\r\n");</DIV>
<DIV>&nbsp;&nbsp;fgets($socket, 512);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $resp01 = fread($socket, 8192);<BR>&nbsp;&nbsp;$resp01 = fread($socket, 8192);<BR>&nbsp;&nbsp;$resp01 = fread($socket, 8192);<BR>&nbsp;&nbsp;$resp01 = fread($socket, 8192);<BR>&nbsp;&nbsp;&nbsp;$respo = split("\n",$resp01);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<FONT color=#c00000>while (sizeof($respo) &gt; $conta_matriz){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $respo[$conta_matriz] . "&lt;br&gt;";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$conta_matriz ++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}</FONT><BR>&nbsp;&nbsp;$resp01 = fread($socket, 8192);<BR>&nbsp;fclose($socket);</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Obrigado pela ajuda.<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> Carlos Eduardo &lt;carlossabbatini@yahoo.com.br&gt;<BR><B><SPAN style="FONT-WEIGHT: bold">Para:</SPAN></B> asteriskbrasil@listas.asteriskbrasil.org<BR><B><SPAN style="FONT-WEIGHT: bold">Enviadas:</SPAN></B> Segunda-feira, 20 de Julho de 2009 10:08:37<BR><B><SPAN style="FONT-WEIGHT: bold">Assunto:</SPAN></B> [AsteriskBrasil] Res: função fsockopen() para se conectar a CLI‏<BR></FONT><BR>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: times new roman, new york, times, serif">
<DIV>Bom dia a todos.</DIV>
<DIV>&nbsp;</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>&nbsp;</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>&nbsp;</P>
<P><STRONG>segue a linha:</STRONG></P>
<P><STRONG></STRONG>&nbsp;</P>
<P>while(!$versionok){</P>
<P><STRONG></STRONG>&nbsp;</P>
<P><STRONG>segue uma parte do codigo:</STRONG></P>
<P><STRONG></STRONG>&nbsp;</P>
<P>fputs ($socket, "Action: command\r\n");<BR>fputs ($socket, "Command: core show version\r\n\r\n");<BR>while(!$versionok){<BR>&nbsp; $version .= fread($socket,8192);<BR>&nbsp; if(strpos($version, "Asterisk")){<BR>&nbsp;$pos = strpos($version, "Asterisk");<BR>&nbsp; $version = substr($version, $pos);<BR>&nbsp; $pos_end = strpos($version, "\n");<BR>&nbsp; $version = substr($version, 0, $pos_end);<BR>&nbsp; $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 &lt;listas@porttaltecnologia.com.br&gt;<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>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo "Nao foi possivel connect no servidor Asterisk. Cheque se Asterisk manager esta ativo - /etc/asterisk/manager.conf\r\n";<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; exit();<BR>} else
 {<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; stream_set_blocking($socket, 0);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; fputs ($socket, "Action: login\r\n");<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; fputs ($socket, "Username: {$username}\r\n");<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; fputs ($socket, "Secret: {$password}\r\n");<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; fputs ($socket, "Events: off\r\n\r\n");<BR>}<BR>while(1){<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $log .= fread($socket,8192);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; if(strpos($log, "Message: Authentication failed")){<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo "Nao foi possivel connect no servidor Asterisk. Cheque se Asterisk manager esta ativo -
 /etc/asterisk/manager.conf\r\n";<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; exit();<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; }<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; if(strpos($log, "Message: Authentication accepted")){<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; break 1;<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; }<BR><BR><BR>fputs ($socket, "Action: command\r\n");<BR>fputs ($socket, "Command: core show version\r\n\r\n");<BR>while(!$versionok){<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $version .= fread($socket,8192);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; if(strpos($version,
 "Asterisk")){<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $pos = strpos($version, "Asterisk");<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $version = substr($version, $pos);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $pos_end = strpos($version, "\n");<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $version = substr($version, 0, $pos_end);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; $versionok = 1;<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; }<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Â&nbsp;a todos da Lista<BR>Â&nbsp;<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>Â&nbsp;<BR>$socket = fsockopen("192.168.0.215","1234");<BR>Â&nbsp;fputs($socket, "Action: Login\r\n");<BR>Â&nbsp;fputs($socket, "UserName: user\r\n");<BR>Â&nbsp;fputs($socket, "Secret: senha\r\n\r\n");<BR>Â&nbsp;fputs($socket, "Action: Command\r\n");<BR>Â&nbsp;fputs($socket, "Command: database show\r\n\r\n");<BR>Â&nbsp;<BR>porem na hora de escrever o resultado se eu uso o while entra em um loop 'infinito'<BR>Â&nbsp;<BR>while (!feof($socket)) { <BR>Â&nbsp; echo fgets($socket, 128); <BR>Â&nbsp; } <BR>Â&nbsp;<BR>consegui escrever porem dessa forma:<BR><BR>fgets($socket,128);<BR>Â&nbsp;$resp01 = fread($socket, 8192);<BR>Â&nbsp;
 $resp01 = fread($socket, 8192);<BR>Â&nbsp; $resp01 = fread($socket, 8192);<BR>Â&nbsp; $resp01 = fread($socket, 8192);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo ($resp01)."&lt;br&gt;&lt;br&gt;"; // essa linha Ã© a que me interessa, só que para eu conseguir escreverr tenho que quebra-lá o problema Ã© que não seiÂ&nbsp;o tamanho da matriz<BR>Â&nbsp;Â&nbsp;Â&nbsp;$respo = split(" :",$resp01);<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo $respo[0] .Â&nbsp; "&lt;br&gt;";<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo $respo[1] .Â&nbsp; "&lt;br&gt;";<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo $respo[2] .Â&nbsp; "&lt;br&gt;";<BR>Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp;Â&nbsp; echo $respo[3] .Â&nbsp; "&lt;br&gt;";<BR>Â&nbsp; $resp01 = fread($socket, 8192);<BR>Â&nbsp;
 <BR>Â&nbsp;fclose($socket);<BR>Â&nbsp;<BR>Â&nbsp;<BR>o que eu preciso Ã© escrever na tela os ramais que estão registrados,<BR>Â&nbsp;<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Ã&shy;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 &amp; 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/" 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></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>