Estou passando pelo mesmo problema.
  Tenho alguns scripts de controle em PHP, usando AGI e tudo funciona bem no
Asterisk 1.2. Porém, no 1.4, começou a dar esse erro.
  Não entendi ao certo o que devo fazer para solucionar.

Bom .. vamos esclarecer o Arquivo "X":

o protocolo AGI é uma comunicação do asterisk com um programa ou socket
externo que fala para ele o que fazer. No caso do PHPAGI isto é feito pelo
STDIN. Quando tu chamas um fwrite e um fflush sem definit o resource ... ele
assume que é o resource é o STDIN. Neste caso o asterisk tentava executar o
comando AGI "success" ou "failure" e por isso dava erro .. e o cachimbo (
pipe) se quebrou ...

Caso tu queiras usar o fwrite .. tu deves definir um resource apropriado ...
como um arquivo por exemplo.
- Show quoted text -

2009/12/16 Kim Delevati <kim.delev...@gmail.com>

> Hm. Me lembro que quando atualizei do 1.4.21.2 para um mais novo, todos os
> meus AGI pararam de funcionar e davam esse erro. No tempo eu não fazia idéia
> do que era, e foi antes de eu somente utilizar o PHPAGI. Acabei voltando ao
> Asterisk antigo mesmo, não sabia o que fazer para os agi funcionarem.
>
>
> 2009/12/16 Rodrigo Lang <rodrigoferreiral...@gmail.com>
>
>> Estou usando o 1.6.0.19. Eu apaguei as linhas fwrite e fflush e parou de
>> dar erros!
>>
>> Obrigado novamente,
>>
>> Rodrigo Lang.
>>
>> 2009/12/16 Kim Delevati <kim.delev...@gmail.com>
>>
>>> Qual a versão do seu Asterisk?
>>>
>>> 2009/12/16 Luis Reis <luis.r...@singularideas.com.br>
>>>
>>> Não usa o fwrite!!! usa somente as funções do PHPAGI.
>>>>
>>>>
>>>>
>>>> 2009/12/16 Rodrigo Lang <rodrigoferreiral...@gmail.com>
>>>>
>>>>> Agora ele fica me dando esse erro Broken pipe! Deve ser algum erro no
>>>>> meu script! :(
>>>>> Existe alguma outra forma de debugar o script além do comando "agi set
>>>>> debug on"?
>>>>>
>>>>>
>>>>>  -- Remote UNIX connection
>>>>>     -- Remote UNIX connection disconnected
>>>>> [Dec 16 17:28:58] ERROR[8760]: utils.c:1019 ast_carefulwrite: write()
>>>>> returned error: Broken pipe
>>>>> [Dec 16 17:28:58] ERROR[8760]: utils.c:1019 ast_carefulwrite: write()
>>>>> returned error: Broken pipe
>>>>>     -- <DAHDI/21-1>AGI Script verifica-tronco.agi completed, returning
>>>>> 0
>>>>>     -- Executing [...@macro-tratamento-saida:4] NoOp("DAHDI/21-1",
>>>>> "failure") in new stack
>>>>>     -- Executing [...@macro-tratamento-saida:5] GotoIf("DAHDI/21-1",
>>>>> "0?DISCA:TRANSBORDO") in new stack
>>>>>
>>>>>
>>>>>
>>>>> Obrigado,
>>>>> Rodrigo Lang.
>>>>>
>>>>>
>>>>> 2009/12/16 Rodrigo Lang <rodrigoferreiral...@gmail.com>
>>>>>
>>>>>> Opa pessoal, obrigado pelas resposta. Kim, achava que estava faltando
>>>>>> alguma coisa mesmo... Baixei o phpagi, fiz um require e instanciei ele.
>>>>>> Funcionou perfeito, consegui passar a variável para o extensions.conf
>>>>>> tranquilamente. Não fazia nem idéia que precisava dessa biblioteca. 
>>>>>> Obrigado
>>>>>> a todos que responderam. Ficou assim:
>>>>>>
>>>>>> if ( $tronco == "khomp/g0" ) {
>>>>>>                 if ( $chan1 == "" && $chan2 == "" ) {
>>>>>>                         fwrite($stdout, "Todos os canais ocupados do
>>>>>> tronco $tronco.\n");
>>>>>>                         fflush($stdout);
>>>>>>                         $agi->set_variable("STATUS",'failure');
>>>>>>                 }
>>>>>>                 else {
>>>>>>                         fwrite($stdout, "Canais livres no tronco
>>>>>> $tronco.\n");
>>>>>>                         fflush($stdout);
>>>>>>                         $agi->set_variable("STATUS",'success');
>>>>>>                 }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> Obrigado,
>>>>>> Rodrigo Lang.
>>>>>>
>>>>>>
>>>>>>  2009/12/16 Kim Delevati <kim.delev...@gmail.com>
>>>>>>
>>>>>>> Eu utilizo o set variable e aqui funciona, desse jeito:
>>>>>>>
>>>>>>>
>>>>>>> $agi->set_variable("tempo",$tempo);
>>>>>>>
>>>>>>> Para usar $agi, tem que ter o phpagi aí, e instanciar um $agi = new
>>>>>>> AGI();
>>>>>>>
>>>>>>> Voce tem o phpagi? Tá fazendo require nele?
>>>>>>>
>>>>>>>
>>>>>>> 2009/12/16 Rodrigo Lang <rodrigoferreiral...@gmail.com>
>>>>>>>
>>>>>>>>  Boa tarde lista. Estou fazendo um AGI em php e surgiu algumas
>>>>>>>> duvidas, as quais eu não consegui sanar no google. O que eu preciso é
>>>>>>>> manipular o valor de ${AGISTATUS} ou criar uma outra variável no AGI 
>>>>>>>> para
>>>>>>>> chamar no extensions. Na pesquisa que fiz encontrei diversos modos, 
>>>>>>>> porém
>>>>>>>> nenhum funcionou. Como nunca tive muito contato com o AGI estou com um 
>>>>>>>> pouco
>>>>>>>> de dificuldade. O que eu preciso seria mais ou menos isso:
>>>>>>>>
>>>>>>>> if ( $varivel == "" ) {
>>>>>>>> fwrite($stdout, "Não deu certo.\n");
>>>>>>>> fflush($stdout);
>>>>>>>> }
>>>>>>>> else {
>>>>>>>> fwrite($stdout, "Deu certo.\n");
>>>>>>>>  fflush($stdout);
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>> Eu preciso que esse trecho retorne algo para eu manipular no
>>>>>>>> extensions. O que eu já tentei sem sucesso foi:
>>>>>>>> AGI::set_variable('STATUS','deucerto');
>>>>>>>> $AGI->set_variable('STATUS','deucerto');
>>>>>>>> return 0;
>>>>>>>> result = 0;
>>>>>>>>
>>>>>>>>
>>>>>>>> Agora eu não sei se falta alguma biblioteca no meu script ou alguma
>>>>>>>> dependência. Quando eu coloco as linhas acima ele me retorna sempre o 
>>>>>>>> mesmo
>>>>>>>> erro:
>>>>>>>> "utils.c:1019 ast_carefulwrite: write() returned error: Broken pipe
>>>>>>>> "
>>>>>>>>
>>>>>>>> Pesquisei em vários livros e em vários sites, porém achei a
>>>>>>>> documentação um pouco precária sobre o assunto. Se alguém puder me 
>>>>>>>> ajudar,
>>>>>>>> agradeço desde já.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Ats,
>>>>>>>> Rodrigo F. Lang
>>>>>>>> Amd. de Redes em Telecom
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>>>
>>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>>>>> servidores compartilham o mesmo E1)
>>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>>> _______________________________________________
>>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>>> AsteriskBrasil@listas.asteriskbrasil.org
>>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>>>> - Valor similar ao de placas E1 PCI;
>>>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>>>> servidores compartilham o mesmo E1)
>>>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>>>> _______________________________________________
>>>>>>> Lista de discussões AsteriskBrasil.org
>>>>>>> AsteriskBrasil@listas.asteriskbrasil.org
>>>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Rodrigo F. Lang
>>>>>> Amd. de Redes em Telecom
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Rodrigo F. Lang
>>>>> Amd. de Redes em Telecom
>>>>>
>>>>> _______________________________________________
>>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>>> - Valor similar ao de placas E1 PCI;
>>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>>> servidores compartilham o mesmo E1)
>>>>> Conheça mais sobre este produto em www.red-fone.com
>>>>> _______________________________________________
>>>>> Lista de discussões AsteriskBrasil.org
>>>>> AsteriskBrasil@listas.asteriskbrasil.org
>>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Luis Machado Reis
>>>> Analista de Sistemas
>>>> www.singularideas.com.br
>>>>
>>>> _______________________________________________
>>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>>> - Valor similar ao de placas E1 PCI;
>>>> - Não há problemas de compatibilidade com barramento PCI;
>>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>>> servidores compartilham o mesmo E1)
>>>> Conheça mais sobre este produto em www.red-fone.com
>>>> _______________________________________________
>>>> Lista de discussões AsteriskBrasil.org
>>>> AsteriskBrasil@listas.asteriskbrasil.org
>>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>>
>>>
>>>
>>> _______________________________________________
>>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>>> - Valor similar ao de placas E1 PCI;
>>> - Não há problemas de compatibilidade com barramento PCI;
>>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>>> servidores compartilham o mesmo E1)
>>> Conheça mais sobre este produto em www.red-fone.com
>>> _______________________________________________
>>> Lista de discussões AsteriskBrasil.org
>>> AsteriskBrasil@listas.asteriskbrasil.org
>>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>>
>>
>>
>>
>> --
>> Rodrigo F. Lang
>> Amd. de Redes em Telecom
>>
>> _______________________________________________
>> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
>> - Valor similar ao de placas E1 PCI;
>> - Não há problemas de compatibilidade com barramento PCI;
>> - Possibilitam a construção de soluções de alta disponibilidade(dois
>> servidores compartilham o mesmo E1)
>> Conheça mais sobre este produto em www.red-fone.com
>> _______________________________________________
>> Lista de discussões AsteriskBrasil.org
>> AsteriskBrasil@listas.asteriskbrasil.org
>> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>>
>
>
> _______________________________________________
> A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
> - Valor similar ao de placas E1 PCI;
> - Não há problemas de compatibilidade com barramento PCI;
> - Possibilitam a construção de soluções de alta disponibilidade(dois
> servidores compartilham o mesmo E1)
> Conheça mais sobre este produto em www.red-fone.com
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil@listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>



-- 
Luis Machado Reis
Analista de Sistemas
www.singularideas.com.br

_______________________________________________
A Redfone é líder no fornecimento de bridges TDMoE &lt;-> E1
- Valor similar ao de placas E1 PCI;
- Não há problemas de compatibilidade com barramento PCI;
- Possibilitam a construção de soluções de alta disponibilidade(dois
servidores compartilham o mesmo E1)
Conheça mais sobre este produto em www.red-fone.com
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
_______________________________________________
KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk. 
- Hardware com alta disponibilidade de recursos e qualidade KHOMP
- Suporte técnico local qualificado e gratuito 
Conheça a linha completa de produtos KHOMP em www.khomp.com.br
_______________________________________________
Lista de discussões AsteriskBrasil.org
AsteriskBrasil@listas.asteriskbrasil.org
http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil

Responder a