Java如何拨入星号



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

之前已经设置了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
}

看看这个

你可以使用exec("Playback","your file")来播放一个文件

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

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

相关内容

  • 没有找到相关文章

最新更新