首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星号Java : utils.c写()返回错误:管道破裂

星号Java : utils.c写()返回错误:管道破裂
EN

Stack Overflow用户
提问于 2013-09-14 03:39:15
回答 2查看 16.3K关注 0票数 6

我用Java编写了一个hello world星号AGI脚本。脚本按预期运行,并播放hello world声音文件,但是星号控制台显示了一个错误:

ERROR31058: utils.c:1164 ast_carefulwrite: write()返回的错误:管道破裂

知道我做错什么了吗?

我使用星号-java-0.3.1.jar和星号1.8.10.1~dfsg-1 ubuntu1

Java类如下所示:

代码语言:javascript
复制
import org.asteriskjava.fastagi.AgiChannel;
import org.asteriskjava.fastagi.AgiException;
import org.asteriskjava.fastagi.AgiRequest;
import org.asteriskjava.fastagi.BaseAgiScript;

public class AgiHelloWorld extends BaseAgiScript 
{
    @Override
    public void service(AgiRequest arg0, AgiChannel arg1) throws AgiException 
    {
        answer();
        streamFile("hello-world");
        hangup();
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-15 13:20:04

当星号试图在脚本完成执行后向您的AGI/FastAGI写入一些行时,就会发生此错误。

通常,星号发送标头,然后等待命令。在每个命令之后,星号发送一个响应。但是这里有一个例外,它写在更多的行

代码语言:javascript
复制
HANGUP

在你的情况下,我认为这是星号不能写的行。您可以通过打开agi调试来检查它。在控制台中写入:

代码语言:javascript
复制
agi set debug on

然后在运行脚本之后,您应该会看到如下所示:

代码语言:javascript
复制
    -- <SIP/XXXX-0000007c>AGI Script YOUR_AGI_NAME completed, returning 4
<SIP/XXXX-0000007c>AGI Tx >> HANGUP
ERROR[1502]: utils.c:1232 ast_carefulwrite: write() returned error: Broken pipe

您可以看到,星号试图发送挂断后,脚本完成。你不必担心它,但它是一个图书馆的错误。

票数 7
EN

Stack Overflow用户

发布于 2013-10-15 12:58:54

这是错误通常发生在您没有访问权限时,请以root用户身份登录并尝试成功。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18798021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档