Java如何拨打Asterisk

时间:2016-08-09 13:54:22

标签: java asterisk

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

之前设置了Asterisk服务器。使用下面的代码我设法拨打一个号码,扩展名播放音频("这是一个测试电话")并挂断。我知道扩展会这样做,因为当我更改它时音频会发生变化。

如果我更改extensions.conf中的数据,也许我可以播放我想要的任何音频。但我做实习的公司并不允许我看到或改变Asterisk'文件。所以我必须在java中这样做。

长话短说,如何拨打号码播放我想要的音频然后挂断java。我在网上搜索了几天但却找不到任何东西。请帮帮我:(

public void run() throws IOException, AuthenticationFailedException,
        TimeoutException
{
    OriginateAction originateAction;
    ManagerResponse originateResponse;

    originateAction = new OriginateAction();
    originateAction.setChannel(number);
    originateAction.setContext(context);
    originateAction.setExten(extension);
    originateAction.setPriority(Integer.parseInt(priority));
    originateAction.setTimeout(new Integer(30000));

    managerConnection.login();                                              // connect to Asterisk and log in
    originateResponse = managerConnection.sendAction(originateAction, 30000);// send the originate action and wait for a maximum of 30 seconds for Asterisk to send a reply
    System.out.println(originateResponse.getResponse());                    // print out whether the originate succeeded or not
    managerConnection.logoff();                                             // and finally log off and disconnect

}

1 个答案:

答案 0 :(得分:1)

查看this

您可以使用exec("播放","您的文件")来播放文件

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

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