使用星号java读取dtmf

使用星号java读取dtmf,java,asterisk,dtmf,Java,Asterisk,Dtmf,我正在编写一个java应用程序,通过DTMF拨号并获取用户的pin。我正在使用asteriskjava连接到asteriskvoip服务器并拨打电话号码,但我不知道如何流式传输文件和读取用户输入的DTMF。这是我的密码: OriginateAction originateAction = new OriginateAction(); originateAction.setChannel("SIP/1001"); originateAction.setContext("default"); ori

我正在编写一个java应用程序,通过DTMF拨号并获取用户的pin。我正在使用
asteriskjava
连接到asteriskvoip服务器并拨打电话号码,但我不知道如何流式传输文件和读取用户输入的DTMF。这是我的密码:

OriginateAction originateAction = new OriginateAction();
originateAction.setChannel("SIP/1001");
originateAction.setContext("default");
originateAction.setCallerId("Server");
originateAction.setPriority(1);

// connect to Asterisk and log in
managerConnection.login();
// send the originate action and wait for a maximum of 30 seconds for Asterisk
// to send a reply
ManagerResponse originateResponse = managerConnection.sendAction(originateAction, 30000);

// print out whether the originate succeeded or not
System.out.println(originateResponse.getResponse());

// and finally log off and disconnect
managerConnection.logoff();
您正在使用AMI

如果没有dialplan支持,就无法在AMI中获得dtmf。您可以在拨号计划中使用类似的内容通过ami获取事件

exten => s,1,Read(variable,filetoplay)
exten => s,2,UserEvent(variable: variable)
或者,您可以使用fastagi控制调用执行并收集dtmf