Java如何拨入星号

Java如何拨入星号,java,asterisk,Java,Asterisk,我想拨打一个号码并播放位于我电脑中的音频文件 之前设置了星号服务器。使用下面的代码,我设法拨打了一个号码,分机播放音频(“这是一个测试呼叫”)并挂断。我知道分机会这样做,因为当我改变它时,音频会改变 如果我更改extensions.conf中的数据,也许我可以播放任何想要的音频。但我实习的公司不允许我查看或更改星号文件。所以我必须用java来做 长话短说,我如何拨打一个号码并播放我想要的音频,然后用java挂断。我在网上搜索了好几天,但什么也没找到。请帮助我:( 看看 您可以使用exec(“播放

我想拨打一个号码并播放位于我电脑中的音频文件

之前设置了星号服务器。使用下面的代码,我设法拨打了一个号码,分机播放音频(“这是一个测试呼叫”)并挂断。我知道分机会这样做,因为当我改变它时,音频会改变

如果我更改extensions.conf中的数据,也许我可以播放任何想要的音频。但我实习的公司不允许我查看或更改星号文件。所以我必须用java来做

长话短说,我如何拨打一个号码并播放我想要的音频,然后用java挂断。我在网上搜索了好几天,但什么也没找到。请帮助我:(

看看

您可以使用exec(“播放”、“您的文件”)来播放文件

public class ExampleCallIn extends BaseAgiScript {
  public void service(AgiRequest request, AgiChannel channel) throws AgiException {
    answer();
    exec("Playback", "tt-monkeys"); 
    hangup();
  }
}

exec命令可以使用星号服务器定义的任何应用程序,如Dial或origine

我不知道我可以使用exec,谢谢。我尝试了public void service()抛出一个异常{exec(“Dial”,number);exec(“Playback”,“tt monkeys”);hangup();}对我来说似乎是合乎逻辑的,但我得到了一个错误,“java.lang.IllegalStateException:尝试从无效线程发送命令"你的公司使用哪个版本的asterisk?你能让他们更改asterisk服务器中的一些配置吗?asterisk Call Manager/1.3 asterisk的使用不仅仅是这个项目,所以万一我弄糟了工作系统,他们不允许我更改。目前,我正试图用origineseresponse=managerConnection.s启动一个呼叫endAction(originateAction,30000);在调用你的方法之后,我可以播放并挂断电话。你能帮我调用你的方法吗?我无法调用它:(我应该为请求和频道编写什么?你能检查我的其他问题吗?
public class ExampleCallIn extends BaseAgiScript {
  public void service(AgiRequest request, AgiChannel channel) throws AgiException {
    answer();
    exec("Playback", "tt-monkeys"); 
    hangup();
  }
}