Asterisk 1.8 Dialplan里获取SIP响应编码
来源:互联网 发布:淘宝 送国外多久 编辑:程序博客网 时间:2024/06/02 18:36
Asterisk里调试SIP确实挺麻烦的,一般使用另外的网络协议分析工具。从1.8版本开始,可以直接在Dialplan里拿到详细的SIP交互信息,从而更加准确地获取拨号状态、网络状态、用户状态(UA)等。
以前版本里,拨号后的状态DIALSTATUS一般返回值有ANSWER、BUSY、NOANSWER、CANCEL、CONGESTION、CHANUNAVAIL、DONTCALL、TORTURE、INVALIDARGS。
我们都经常被CONGESTION这个返回值困扰。几乎每个呼叫故障都返回CONGESTION。这是因为Dial()函数适用很多种协议,SS7,Zap,SIP,IAX等等,因此不能返回某个协议指定的信息,比如SIP 404 响应。
Asterisk 1.8 增加了一个功能,可以从Dialplan里面调用 {HASH(SIP_CAUSE,<channel-name>)}来获取具体的SIP响应信息,不仅是拨号状态,也可以是挂机原因(${HANGUPCAUSE})。
Asterisk 1.8还新增了一个'use_q850_reason' 配置选项来生成和分析Q.850协议信息。"Reason: Q.850;cause=<cause code>" 可以更好地通过SIP来传递 PRI/SS7原因编码。
具体应用在哪些场合呢?
* 比如你有一些中继网关(SIP <-> ISDN或者SIP <-> SS7),当然希望能够监测真正的“congestion”信令,以便路由到其它的中继网关上。但是如果每个呼叫失败的消息都反馈成“CONGESTION“,就不可能实现这个功能。
* 你的电话听筒不能给用户显示SIP错误响应信息,所以你需要使用信号音。比如Cisco 7960 SIP总是无用地响着重拨信号音 "boop, boop, boop, boop",无论对任何SIP呼叫建立故障都一样。美国的"Reorder"信号音并不是手机上的惯例,听起来很像英国的忙音。这让用户无法判断到底哪里出了问题。
* 如果你不想依赖电话听筒,而是通过SIP错误代码来提供更加一致的用户体验。在调用Dial()之前先调用Answer()让Asterisk摘机,然后使用Playtones() Wait() 来播放地区特定的呼叫进展信号音。
- Asterisk 1.8 Dialplan里获取SIP响应编码
- Asterisk Dialplan命令中文翻译
- Asterisk Dialplan Commands
- Asterisk Dialplan命令中文翻译
- Asterisk Dialplan命令中文翻译
- Asterisk 1.8 提高了大型Dialplan的效率
- Asterisk Dialplan命令中文翻译(转载)
- asterisk dialplan 转换成 freeswitch
- Asterisk 1.8 sip 协议栈分析
- Asterisk 1.8 sip 协议栈分析 2
- Asterisk 1.8 sip 协议栈分析(一)
- asterisk dialplan中MYSQL命令的使用
- Asterisk 拨号方案(dialplan)命令手册(中文版)
- (asterisk)dialplan 中 函数介绍 --拨号方案
- Asterisk dialplan中部分function使用说明
- Asterisk之Dialplan编程一般规则
- Asterisk sip canreinvite
- Asterisk SIP media path
- [ZZ]浮点数的存储格式
- 标签
- VS2008通过ddkwizard向导快捷建立驱动开发工程!
- gdb~~
- Windows xp定时关机命令
- Asterisk 1.8 Dialplan里获取SIP响应编码
- 勾住有设备名字的驱动 拦截IRP(USB 光驱 无线上网卡等)
- Asterisk 1.8 提高了大型Dialplan的效率
- VBA中如何获取当前登录用户名
- Oracle Data guard 物理standby 测试
- SVG 例子
- Asterisk 1.8 meetme 改进
- 图像处理的基本算法
- 解决:Application package 'AndroidManifest.xml' must have a minimum of 2 segments.