修改etc/asterisk/manager.conf
read = agi,system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = agi,system,call,agent,user,config,command,reporting,originate
修改
etc/asterisk/extensions.conf
[test]
exten =>_2.,1,AGI(agi:async)
脚本服务程序
import java.io.IOException;
import org.asteriskjava.manager.AuthenticationFailedException;
import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.manager.ManagerConnectionFactory;
import org.asteriskjava.manager.ManagerEventListener;
import org.asteriskjava.manager.TimeoutException;
import org.asteriskjava.manager.action.*;
import org.asteriskjava.manager.event.*;
import org.asteriskjava.manager.response.ManagerResponse;
public class HelloEvents implements ManagerEventListener
{
private ManagerConnection managerConnection;
private ManagerConnection managerConnection1;
public HelloEvents() throws IOException
{
ManagerConnectionFactory factory = new ManagerConnectionFactory(
"ip", "uid", "pwd");
this.managerConnection = factory.createManagerConnection();
this.managerConnection1 = factory.createManagerConnection();
}
public void run() throws IOException, AuthenticationFailedException,
TimeoutException, InterruptedException
{
// register for events
managerConnection.addEventListener(this);
// connect to Asterisk and log in
managerConnection.login();
managerConnection1.login();
// request channel state
//managerConnection.sendAction(new StatusAction());
// wait 10 seconds for events to come in
while(true){
Thread.sleep(10000);
}
// and finally log off and disconnect
// managerConnection.logoff();
}
int actionid=0;
public void onManagerEvent(ManagerEvent event)
{
actionid++;
// just print received events
System.out.println("==============================");
System.out.println(event.getClass().getName());
if (event.getClass().equals(DtmfEvent.class))
{
DtmfEvent dtmfEvent=(DtmfEvent)event;
if (dtmfEvent.isEnd())
System.out.println(dtmfEvent);
}else if (event.getClass().equals(PeerStatusEvent.class))
{
System.out.println((PeerStatusEvent)event);
}else if (event.getClass().equals(AgiExecEvent.class))
{
System.out.println((AgiExecEvent)event);
}else if (event.getClass().equals(AsyncAgiEvent.class)){
AsyncAgiEvent agiEvent=(AsyncAgiEvent)event;
System.out.println(event);
try {
AgiAction agiAction=new AgiAction();
agiAction.setActionId("MyAction_"+actionid);
agiAction.setCommandId("MyCommandId_"+actionid);
agiAction.setChannel(agiEvent.getChannel());
if (agiEvent.getSubEvent().equals("Start")){
System.out.println("==============ANSWER===============");
agiAction.setCommand("ANSWER");
ManagerResponse response=managerConnection1.sendAction(agiAction);
System.out.println(response);
}else{
if (!agiEvent.getSubEvent().equals("End")){
//agiAction.setCommand("SAY NUMBER 1234 \"1*#\"");
//agiAction.setCommand("STREAM FILE hello-world \"1*#\"");
agiAction.setCommand("EXEC AGI \"agi://218.249.75.164/callin.agi\"");
ManagerResponse response=managerConnection1.sendAction(agiAction);
System.out.println(response);
}
}
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 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
//originateResponse = managerConnection.sendAction(originateAction, 30000);
}
public static void main(String[] args) throws Exception
{
HelloEvents helloEvents;
helloEvents = new HelloEvents();
helloEvents.run();
}
}
分享到:
相关推荐
NULL 博文链接:https://sunflowers.iteye.com/blog/673753
ubuntu系统环境构建Asterisk通信应用程序的core-sounds-en-gsm-1.6.压缩包
voip asterisk CLI command
详细介绍asterisk1.6,开发不可多得材料
tar zxvf asterisk-1.6.2.8-rc1.tar.gz cd asterisk-1.6.2.8-rc1 ./configure make make install make config make samples cd .. //安装asterisk扩展包(H323\mysql支持): tar zxvf asterisk-addons-1.6.2.1.tar....
asterisk-16.0.0.jar 呼叫中心的jar包 基于asteriter
asterisk-java-2.0.3jar包及示例
The Asterisk-Java package consists of a set of Java classes that allow you to easily build Java applications that interact with an Asterisk PBX Server. Asterisk-Java supports both interfaces that ...
asterisk-java AGI 通过asterisk ami接口,连接asterisk. api,开发自己的呼叫中心
certified-asterisk-11.6-current
asterisk-core-sounds-en-gsm-1.4.22.tar.gz
asterisk-core-sounds-en-gsm-1.4.21.tar.gz
asterisk-1.8.10.1.tar.gz
NULL 博文链接:https://nettm.iteye.com/blog/1824964
asterisk-addons-1.6.1-current.tar.gzasterisk-addons-1.6.1-current.tar.gzasterisk-addons-1.6.1-current.tar.gz
标签:asterisk-java-1.0.0.jar.zip,asterisk,java,1.0.0,jar.zip包下载,依赖包
asterisk-11.0.1.tar.gzasterisk-11.0.1.tar.gzasterisk-11.0.1.tar.gzasterisk-11.0.1.tar.gz
asterisk的java api 1.0.0版本
ubuntu系统环境构建Asterisk通信应用程序的sounds文件夹下moh-opsound-wav-2.03压缩包
asterisk 18版本合成的声音资源,中文,wav格式,适合openwrt,ubuntu,其他未测试