- 浏览: 452699 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
a464697691:
楼主厉害,现在可以使用了
Proxool houseKeepingSleepTime bug修正 -
chenpi529:
楼主好牛逼
Proxool houseKeepingSleepTime bug修正 -
huangxinyu_it:
多谢楼主了
Proxool houseKeepingSleepTime bug修正 -
kokorodo:
谢谢了!
zk中文开发手册pdf版(基于3.5.1) -
superscorpio:
public void testImportInContex ...
MVEL2.0控制流
/** * * Asterisk通道工具类 * * * @author sunflower * * 时间:2010-7-26 下午01:11:41 * * Email:zhangxuehuaemail # gmail 点 com * */ public class ChanUtil { private ChanUtil() { } public static final String CHAN_LOCAL = "LOCAL"; public static final String CHAN_DAHDI = "DAHDI"; public static final String CHAN_ZAP = "ZAP"; public static final String CHAN_SIP = "SIP"; public static final String CHAN_IAX2 = "IAX2"; private static final Map<String, Integer> CHANNEL_TYPES = new HashMap<String, Integer>( 5); static { CHANNEL_TYPES.put(CHAN_LOCAL, 0);// 0 CHANNEL_TYPES.put(CHAN_DAHDI, 1);// 1 CHANNEL_TYPES.put(CHAN_ZAP, 1 << 1);// 2 CHANNEL_TYPES.put(CHAN_SIP, 1 << 2);// 4 CHANNEL_TYPES.put(CHAN_IAX2, 1 <<3);// 8 } /** * 判断通道类型是否被支持 * * @param channelType * 需要鉴定的通道类型 * @return 是true,否false */ public static final boolean contansChanType(String channelType) { return CHANNEL_TYPES.containsKey(StringUtils.upperCase(channelType)); } /** * 是否是本地通道 * * @param channel * 需要鉴定的通道 * @return 是true,否false */ public static final boolean isLocalChan(String channel) { return StringUtils.startsWithIgnoreCase(channel, CHAN_LOCAL); } /** * 是否是dahdi通道 * * @param channel * 需要鉴定的通道 * @return 是true,否false */ public static final boolean isDahdiChan(String channel) { return StringUtils.startsWithIgnoreCase(channel, CHAN_DAHDI); } /** * 是否是zap通道 * * @param channel * 需要鉴定的通道 * @return 是true,否false */ public static final boolean isZapChan(String channel) { return StringUtils.startsWithIgnoreCase(channel, CHAN_ZAP); } /** * 是否是sip通道 * * @param channel * 需要鉴定的通道 * @return 是true,否false */ public static final boolean isSipChan(String channel) { return StringUtils.startsWithIgnoreCase(channel, CHAN_SIP); } /** * 是否是IAX2通道 * * @param channel * 需要鉴定的通道 * @return 是true,否false */ public static final boolean isIax2Chan(String channel) { return StringUtils.startsWithIgnoreCase(channel, CHAN_IAX2); } /** * 窄化通道,获得简单通道字符串 例如: *<ul> * <li>DAHDI/2-1处理后DAHDI/2</li> * <li>SIP/102-d2dg3232ds处理后SIP/102</li> * <li>Local/FMPR-100@from-internal-7a11,1处理后Local/FMPR-100</li> * </ul> * * @param channel * @return */ public static String narrowChan(String realChannel) { if (StringUtils.isEmpty(realChannel)) { return ""; } if (StringUtils.contains(realChannel, "@")) { // 处理local通道 return StringUtils.substringBefore(realChannel, "@"); } else if (StringUtils.contains(realChannel, "-")) { return StringUtils.substringBefore(realChannel, "-"); } else { return realChannel; } } /** * 判断通道是否是FMPR通道 * <p> * 该通道在Fellow * me通道出现,Elastix1.3++,Local/FMPR-100@from-internal-7a11,1中100为实际被叫号码 * 而Local/FMGL-101@from-internal-7a11,1中101是100的fellow me * * @param channel * 需要鉴定的通道 * @return true or false */ public static boolean isFMPRChan(String channel) { return StringUtils.containsIgnoreCase(channel, "Local/FMPR"); } /** * 判断通道是否是FMGL通道 * <p> * 该通道在Fellow * me通道出现,Elastix1.3++,Local/FMPR-100@from-internal-7a11,1中100为实际被叫号码 * 而Local/FMGL-101@from-internal-7a11,1中101是100的fellow me * * @param channel * 需要鉴定的通道 * @return true or false */ public static boolean isFMGLChan(String channel) { return StringUtils.containsIgnoreCase(channel, "Local/FMGL"); } /** * 解析实际通道获取号码 * <p> * 支持的通道样式 * <ul> * <li>Local/100@from-internal-68d2,2</li> * <li>Local/FMPR-100@from-internal-7a11,1</li> * <li>SIP/101-b7604d00</li> * </ul> * * * @param channel * 实际通道 * @return 支持的通道返回号码字符串,否返回UNKNOWN */ public static String getExtenFromChannel(String realChannel) { if (StringUtils.isEmpty(realChannel)) { return ""; } // 解析内部通道 if (StringUtils.contains(realChannel, "@")) { if (isFMGLChan(realChannel) || isFMPRChan(realChannel)) { return StringUtils.substringBetween(realChannel, "-", "@"); } // Local/100@from-internal-7a11,1 else { return StringUtils.substringBetween(realChannel, "/", "@"); } } // 解析sip通道 例如SIP/100-0a208990 else if (isSipChan(realChannel)) { return StringUtils.substringBetween(realChannel, "/", "-"); } // 不支持的通道格式返回未知 else { return "UNKNOWN"; } } public static class AstState { /* from include/asterisk/channel.h */ /** * Channel is down and available. */ public static final int AST_STATE_DOWN = 0; /** * Channel is down, but reserved. */ public static final int AST_STATE_RSRVD = 1; /** * Channel is off hook. */ public static final int AST_STATE_OFFHOOK = 2; /** * Digits (or equivalent) have been dialed. */ public static final int AST_STATE_DIALING = 3; /** * Line is ringing. */ public static final int AST_STATE_RING = 4; /** * Remote end is ringing. */ public static final int AST_STATE_RINGING = 5; /** * Line is up. */ public static final int AST_STATE_UP = 6; /** * Line is busy. */ public static final int AST_STATE_BUSY = 7; /** * Digits (or equivalent) have been dialed while offhook. */ public static final int AST_STATE_DIALING_OFFHOOK = 8; } }
发表评论
-
使用 Local Channel呼叫时context 加/n与不加的区别
2010-09-09 16:37 1209示例代码 ManagerConnection ... -
asterisk1.6 manager 命令列表
2010-08-20 09:18 1522manager show commands Act ... -
TI技术常见名词解释
2010-08-13 10:20 1753转载于这里 ACD……Automatic ... -
Asterisk 通道变量
2010-08-13 10:18 1992${ACCOUNTCODE}: 用户计费帐号 sip.conf ... -
Elastix 2.0 has been released!
2010-08-10 13:33 1710Elastix 2.0 has been releas ... -
asterisk dialplan可用函数
2010-07-23 16:25 3681---------------------------- ... -
asterisk-1.6.2.6-2来电显示的bug修复以及asterisk-1.6.2.6-2 rpm重新打包
2010-05-24 11:49 2140asterisk-1.6.2.6-2来电显示的bug修复 ... -
asterisk1.6中通话播放
2010-04-21 20:21 1122Using Call Screening Another ... -
asterisk1.6支持的函数
2010-04-21 20:04 1154Installed Custom Functions:---- ... -
asterisk 中特殊的extension
2010-04-10 20:39 1404Special extensions 特殊的e ... -
Asterisk中实现桥接两个会议
2010-02-03 01:59 2340--------------------------- ... -
chan_dahdi.c 中dahdi_pvt的定义
2010-02-03 01:04 1762static struct dahdi_pvt { ast ... -
Asterisk自动报号优化
2010-01-25 16:37 1643自动报号详细细节见给asterisk添加自动报号功 ... -
Asterisk Manager api Originate的妙用
2010-01-25 00:03 5714Originate Using Asterisk Local ... -
Asterisk cmd ChanSpy,extenspy 通道监听与分机监听
2010-01-18 09:16 3818Asterisk cmd ChanSpy ChanS ... -
AST_CAUSE 定义
2009-11-24 13:14 2163文件位置asterisk-1.4.26.2/includ ... -
Asterisk CLI命令
2009-11-05 14:23 4831Asterisk 1.4.0 CLI commands ... -
Asterisk呼入队列分析
2009-10-21 11:42 4409asteriskjava监控打印 ... -
给asterisk添加自动报号功能
2009-09-03 12:00 3008asterisk自动报号 文章代码优化部分请 ... -
asterisk application命令
2009-07-27 13:50 2550常规指令Authenticate:鉴别用户VMAuthen ...
相关推荐
asterisk 通道变量 做asterisk 编程必要参考内容
Asterisk 代码学习笔记,深入浅出asterisk,由于...第一篇就翻译一下Asterisk里的通道的概念 呼叫情景(call scenario),桥接通道(Bridging channels),植入通道(Masquerading channels) 植入通道(Masquerading channels)
这是老外的一个asterisk工具,很好用,希望对大家有用。
借鉴asterisk sip 服务器 实现一个工具连。
Asterisk 简介 Asterisk 架构 Asterisk程序框图
本代码整理了Asterisk AMI 接口,下载之后,通过配置Asterisk用户名和密码即可连接到Asterisk,用户名和密码在代码中已给出,可自由修改。
Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...
asterisk 使用info 触发录音,http告知服务器;带有主叫信息,被叫信息等。
用于控制Asterisk的.net类库,包含了AMI和FastAGI,最新的1.6.3版本
This is a book for anyone who uses Asterisk, but particularly those who already understand the dialplan syntax. In this book, we look at common problems we’ve encountered as Asterisk administrators ...
asterisk16版本安装包,下载之后直接编译安装即可。
修改sip_general_custom.conf(作为测试,在所有SIP 通道上启用提示语为中文,在实际应用中,可根据需要修改--zapata-channels.conf,sipXXX.conf,IAXXXX.conf...,也可在FreePBX的WEB界面中有language选项的地方修改--...
Asterisk, voip, ITSP
Asterisk[1] 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一...
asterisk拨号方案的配置
Asterisk客户端和Asterisk manager API(AMI)文档。
Asterisk Cookbook.pdf
Asterisk学习必备,共5本书籍,学习助手 Asterisk权威文档(第3版).pdf Asterisk,the future of telephony.pdf Building+Telephony+Systems+with+Asterisk.pdf Asterisk+For+Dummies+2006.pdf Asterisk_Developers_...
虽然说代码是模块化的,但是赤手空拳地针对每个源文件进行学习,确实增加了一定的难度,如果能够借助某些工具来调试asterisk,将是多方便的一件事情呀!经过研究,终于把asterisk整个项目部署到了Linux下的netbeans ...
详细写了如何实现asterisk视频通讯功能的 每步都有截图噢!