asteriskServer文章1提到啦怎么获取,就不解释

asteriskServer.addChainListener(new AsteriskeventListenerInit());//整个服务的事件监听,给这个服务加监听

通过实现ManagerEventListener类,

public class AsteriskeventListenerInit implements ManagerEventListener {

@Override
 public void onManagerEvent(ManagerEvent event) {

这里可以获得事件返回的参数,获取类型可以惨开api文档

domo:

//返回sip分机结束事件
 }else if(event instanceof PeerlistCompleteEvent){
  PeerlistCompleteEvent perrs=(PeerlistCompleteEvent)event;
  MapCacheUtil Instance=MapCacheUtil.getInstance();
  if(perrs.getActionId()!=null){
   Instance.putPerrsList(perrs.getActionId(), Instance.getPerrs(perrs.getActionId()));//获取整个事件结束
  }
 //返回的是sip分机信息事件  
 }else if(event instanceof PeerEntryEvent){
  PeerEntryEvent pentry=(PeerEntryEvent)event;
  mapcache.putExtensions(pentry.getObjectName());//存放所有分机的容器,用于判断是分机就不需要弹屏
  if(pentry!=null && pentry.getStatus()!=null){
  if(pentry.getStatus().contains("OK") && !String.valueOf(pentry.getPort()).equals("0")){
   List actionidoldList=mapcache.getActionId();
   if(actionidoldList!=null){
    for(int i=0;i<actionidoldList.size();i++){
     String actionid=pentry.getActionId();
     if(!ToolUtils.checkNull(actionid) && actionid.equals(actionidoldList.get(i))){
      if(ToolUtils.isInteger(pentry.getObjectName())){//分机号是数字类型就放入
      mapcache.putPerrs(actionid, pentry.getObjectName());
      }
     }
    }
   }
   perrlist.add(pentry.getObjectName());
  }  
  }

//返回的是挂机信息事件
 }else if(event instanceof HangupEvent){
  HangupEvent hangup=(HangupEvent)event;
  new WebSocket().broadcast("websocket"+BaseUtil.getnumber(hangup.getChannel()), "挂机原因:"+BaseUtil.getHangup(Integer.valueOf(hangup.getCause()).intValue()));  
    //分机状态改变事件
 }else if(event instanceof ExtensionStatusEvent){
  ExtensionStatusEvent extensionstatus=(ExtensionStatusEvent)event;
  JSONObject jsono=new JSONObject();
  jsono.put("id", extensionstatus.getExten());
  jsono.put("statusname", BaseUtil.getExtensionState(extensionstatus.getStatus())); 
  new WebSocket().broadcastAll(jsono); 
 //暂时是呼叫保留事件
 }else if(event instanceof ParkedCallEvent){
  ParkedCallEvent parkcall=(ParkedCallEvent)event;  
   String key=BaseUtil.getnumber(parkcall.getFrom());
   key+=BaseUtil.CHANNELPARK_CENTENT;
   mapcache.put(key, parkcall.getExten());  
 //获取数据库数据事件
 }else if(event instanceof DbGetResponseEvent){
  DbGetResponseEvent dbget=(DbGetResponseEvent)event;
 }else if(event instanceof DisconnectEvent){
  DisconnectEvent disconn=(DisconnectEvent)event;
  System.out.println("连接asterisk服务失败事件触发:"+disconn);
 //所有结果返回事件,写在最后
 }else if(event instanceof ResponseEvent){
  ResponseEvent response=(ResponseEvent)event;
 }

}

}

asterisk-java ami2 事件监听的更多相关文章

  1. JAVA GUI 事件监听事件 详解 和 案例.

    GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的 方式, 来显示 计算机操作的 界面, 这样更方便 更直观. CLI Command Line Use ...

  2. Java GUI 事件监听

    现在使用的仍是AWT的事件模型.涉及到3类对象: Event Source:事件源,即事件发生所在的组件 Event:事件,封装了此次事件的相关信息 Event Listener:事件监听器,监听事件 ...

  3. JAVA自定义事件监听完整例子---sunfruit[转]

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f733628a854d2c90c05f9313071601 ...

  4. JAVA Swing 事件监听

    EventListner 接口 它是一个标记接口,每一个监听器接口扩展.这个类定义在java.util包. 类声明 以下是声明java.util.EventListener接口: public int ...

  5. java Gui编程 事件监听机制

    1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在DOS命令行中通过javac java命令启动程序. 软件的交互的方式:   1. 命令交互方式    图书管理系统 ...

  6. Java界面编程—事件监听机制

    组件首先要先注册事件处理器,当用户单击组件.移动鼠标或者敲击键盘时都会产生事件(Event),一旦有时间发生,应用程序就会做出对该事件的响应,这些组件就是事件源(Event source). 接受.解 ...

  7. Java事件监听的四种实现方式

    1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...

  8. 事件监听:诀别Android繁琐的事件注册机制——view.setOnXXXXListener

    本版本为1.0,支持较少,使用不够方便.相关封装逻辑结构已升级至2.0,详情可参见:更完善的安卓事件监听实现 先简单扯两句这几天学习下来对java事件监听机制的一点感触.客观地讲,java的事件监听机 ...

  9. Java中用得比较顺手的事件监听

    第一次听说监听是三年前,做一个webGIS的项目,当时对Listener的印象就是个"监视器",监视着界面的一举一动,一有动静就触发对应的响应. 一.概述 通过对界面的某一或某些操 ...

随机推荐

  1. [nyoj737]石子归并(区间dp入门题)

    题意:有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出总的代价最小值 ...

  2. 阿里云服务器CentOS7中Tomcat8.x启动慢问题解决记录

    公司服务器刚换CentOS7,在内部的刀片机上一直跑的很溜,迁移到阿里云上后Tomcat启动竟然要6.7分钟!这还了得. 且日志上无任何错误,在日志中查看到如下信息: Log4j:[2015-10-2 ...

  3. 利用 druid 的 sql parser 模块解析 sql 语句

    druid 是阿里开源在 github 上面的数据库连接池,里面有一个专门解析 sql 语句的模块   源码位置: https://github.com/alibaba/druid SQL Parse ...

  4. HDU - 4821 String(窗口移动+map去重+hash优化)

    String Given a string S and two integers L and M, we consider a substring of S as “recoverable” if a ...

  5. zookeeper原理与实践(一)----zookeeper的基本功能

    我们现在围绕两个问题来学习zookeeper: 什么是zookeeper? zookeeper基础知识 什么是zookeeper: zookeeper是hadoop下面的一个子项目,是一个分布式协调服 ...

  6. php如何运行

    这篇文章,研究一下php代码是如何解释和执行以及PHP脚本运行的生命周期. 概述 PHP服务的启动.严格来说,PHP的相关进程是不需要手动启动的,它是随着Apache的启动而运行的.当然,如果有需要重 ...

  7. [sdut] 1400 马的走法 dfs

    Problem Description 在一个4*5的棋盘上,马的初始位置坐标(纵 横)位置由键盘输入,求马能返回初始位置的所有不同走法的总数(马走过的位置不能重复,马走“日”字).如果马的初始位置坐 ...

  8. spring-eureka 源码解读----为什么一个服务最多两分钟被其他服务感知

    Eureka的wiki上有一句话,大意是一个服务启动后最长可能需要2分钟时间才能被其它服务感知到,但是文档并没有解释为什么会有这2分钟.其实这是由三处缓存 + 一处延迟造成的. 首先,Eureka对H ...

  9. Kaggle 数据挖掘比赛经验分享

    文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 腾讯广告算法大赛 作者 | 陈成龙 Kaggle 于 2010 年创立,专注数据科学,机器学 ...

  10. python——函数重点总结

    参数的分类 形参:位置参数.默认参数.*args.命名关键字参数.**kwargs 实参:位置参数.关键字参数 命名关键字参数:定义在*后面的位置参数和默认参数叫作命名关键字参数:用来限制实参必须以关 ...