tu estás com erro de sintaxe no seu agi. Ou está escrevendo um comando agi invalido em stdin
Em 23/03/10, alessandro (listas)<lis...@snowleopard.com.br> escreveu: > 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 <-> 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 <-> 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 <-> 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 <-> 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 <-> 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 <-> 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 <-> 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 <-> 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 _______________________________________________ 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