asterisk-java ami5 分机状态,挂机原因之类的

这些东西网上随便一找一大堆,也只是记录下自己找的。方便以后自己复制粘贴用。

最后为啦实现分机状态在web的实时更新,我选择啦使用websocket。

//获得分机状态
 public static String getExtensionState(int status){
  String statename="";
  switch(status){  
  case -1: statename="扩展找不到";break;
  case 0: statename="空闲";break;
  case 1: statename="在使用";break;
  case 2: statename="忙";break;
  case 4: statename="不可用";break;
  case 8: statename="振铃";break;
  case 16: statename="正等待";break;  
  }
  return statename;
 }
 //获得挂机原因
 public static String getHangup(int status){
  String statename="";
  switch(status){  
  case 1: statename="未分配";break;
  case 2: statename="无到达路由";break;
  case 3: statename="无路由目的地";break;
  case 6: statename="无效通道";break;
  case 7: statename="正在通话中";break;
  case 16: statename="正常挂机";break;
  case 17: statename="用户忙";break;
  case 18: statename="无应答";break;
  case 19: statename="无人接听";break;
  case 21: statename="拒绝接听";break;
  case 22: statename="号码已更改";break;
  case 27: statename="目的次序不对";break;
  case 28: statename="无效的数字格式";break;
  case 29: statename="设备拒绝";break;
  case 30: statename="查询响应";break;
  case 31: statename="正常未指定";break;
  case 34: statename="正常的呼叫拥塞";break;
  case 38: statename="网络状态差";break;
  case 41: statename="正常的临时故障";break;
  case 42: statename="交换机拥塞";break;
  case 43: statename="信息过时";break;
  case 44: statename="请求通道无效";break;
  case 45: statename="被抢占";break;
  case 50: statename="无呼叫保持或呼叫等待";break;
  case 52: statename="禁止呼出";break;
  case 54: statename="禁止呼入";break;
  case 57: statename="负载过重导致失效";break;
  case 58: statename="负载过多导致不可达";break;
  case 65: statename="负载过多导致为实现";break;
  case 66: statename="通道未实现";break;
  case 69: statename="设备未实现";break;
  case 81: statename="无效的呼叫证明";break;
  case 88: statename="不相容的目的地";break;
  case 95: statename="无效的不明信息";break;
  case 96: statename="IE浏览器关闭";break;
  case 97: statename="不识别的信息类型";break;
  case 98: statename="错误信息";break;
  case 99: statename="无IE浏览器";break;
  case 100: statename="无效的IE信息";break;
  case 101: statename="呼叫状态错误";break;
  case 102: statename="计时到达";break;
  case 103: statename="强制性IE浏览器长度误差";break;
  case 111: statename="协议错误";break;
  case 127: statename="互通";break;
  case 0: statename="管理人员挂机";break;
  }
  return statename;
 }

时间: 2024-10-08 22:27:38

asterisk-java ami5 分机状态,挂机原因之类的的相关文章

java线程的状态及操作方法

一.线程的状态 1. 新建状态 在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时,它已经有了相应的内存空间和其它资源,但还处于不可运行状态.新建一个线程对象可采用线程构造方法来实现. 例如:Thread thread=new Thread(); 2. 就绪状态 新建线程对象后,调用该线程的start()方法就可以启动线程.当线程启动时,线程进入就绪状态.此时,线程将进入线程队列排队,等待CPU服务,这表明它已经具备了运行条件. 3. 运行状态 当就绪状态的线程被调用并获得

JAVA设计模式之 状态模式【State Pattern】

一.概述 当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式.状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化.状态模式是一种对象行为型模式. 二.适用场景 用于解决系统中复杂对象的多种状态转换以及不同状态下行为的封装问题.简单说就是处理对象的多种状态及其相互转换. 三.UML类图 四.参与者 1>.AbstractState(抽象状态类): 在抽象状态类中定义申明了不同状态下的行为抽象方法,而由子类

java.lang.NullPointerException的可能原因及处理

java.lang.NullPointerException的可能原因及处理 java.lang.NullPointerException具体意思是空指针异常,最常见的问题就是没有初始化. 字符串等数据类型没有初始化 类实例(对象)有用具体的类初始化 没有判断是否为空 Eg: 源码: 1 public static BookInformation[] ImFromClassification(String a){ 2 Connection conn = null; 3 PreparedState

Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法

使用 Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常 1 ActionContext context = ActionContext.getContext(); 2 ServletContext servletContext = (ServletContext) context.get(ServletActionContext.SERVLET_CONTEXT); //抛空指针异常

myeclipse 编写java代码提示 dead code 原因

经常使用MyEclipse或Eclipse编辑器编写java代码的程序员,可能经常遇到一个黄线警告提示:dead code:一般程序员遇到这些问题都会置之不理,反正也不影响程序的编译执行.对,这不是bug,只是一个提示,对于一个有强迫症的程序员来说,他非要代码一点问题都没有,包括黄线警告都要消灭掉,这里简单说下dead code 即死代码.无作用的代码提示的原因和解决方法. 顾名思义,死代码,即你编写的那一行是无效代码,可有可无,说白了就是一行废话:这是你就要看一下这一行的处理逻辑是什么,可能是

出现java.lang.UnsupportedClassVersionError 错误的原因

出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误. 因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同.这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误. 在ubuntu下的解决方法是 在 ht

java线程数过高原因分析

作者:鹿丸不会多项式  出处:http://www.cnblogs.com/hechao123   转载请先与我联系. 一.问题描述 前阵子我们因为B机房故障,将所有的流量切到了A机房,在经历了推送+自然高峰之后,A机房所有服务器都出现java线程数接近1000的情况(1000是设置的max值),在晚上7点多观察,java线程数略有下降,但还是有900+的样子,而此时,单台服务器的TPS维持在400/s,并不是一个特别大的量.然后将A机房一台机器下线,继续观察,到了晚上9点多,那台下线的机器,j

11.11-全栈Java笔记:线程状态转换和任务定时调度

线程状态转换 1)New :创建好线程对象,但没有启动的时候. 一个线程调用start()之后不一定会马上启动,此时进入就绪状态,等待得到资源. 2)就绪线程序通过Scheduler(调度程序)去确定是否运行. 3)Runing---dead:运行结束(非双向,为单向箭头). 4)Runing---就绪:暂停(除了没有CPU,具备运行的所有条件). 5)Runing-otherwise(阻塞):因程序原因:调用sleep或join之后,线程被阻塞.这时不具备运行的条件,此时线程进入阻塞池.sle

Java之线程状态

Java线程有6种状态: 1.New(新生),使用new Thread(r)创建一个新线程时,该线程处于新生状态,新生状态会为线程的执行做一些准备. 2.Runnable(可执行),调用线程的start方法,使该线程处于可执行状态. 可执行状态不代表该线程一定在执行,而是它具备执行的条件.它可能正在执行,也可能没有在执行,这全然取决于线程调度控制. 3.Blocked(被堵塞).当线程试图获取一个内部的对象锁时,该对象锁被其它线程持有,则该线程进入堵塞状态. 4.Waiting(等待).当在调用