我想拨打一个号码并播放位于我电脑中的音频文件。
之前已经设置了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