- 浏览: 343521 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
mcseer:
我按照设置,但没有生效。能否协助
Asterisk中MixMonitor的参数b,接通后才录音 -
hbxfyxw:
过来看看文周书记,文周书记的总结很好很实用
(可行)easyui 实现 panel 拖动效果 -
hbxfyxw:
(惨痛教训) java runtime().exec() 提示 No such file or directory -
hwzyyx:
hbxfyxw 写道过来看看黄师傅,黄师傅行文走笔娓娓道来,受 ...
(原创)easyui 页面加载慢的原因及解决办法 -
hbxfyxw:
过来看看黄师傅,黄师傅行文走笔娓娓道来,受教了
(原创)easyui 页面加载慢的原因及解决办法
很多刚刚接触Asterisk的朋友在试验完内部通话组网后,兴冲冲的搞到一块digium兼容的PSTN卡,想把自己的Asterisk接入到PSTN网络,结果发现似乎不像刚开始试验时那么顺利了,在这里,我简单的把一些基础的通讯知识分享给大家,让大家在配置zaptel或dahdi时能减少一些迷惑(既然是个人经验,欢迎大家一起来补充,修整)
考虑大多数试验用户没有条件使用数字线路,关于数字线路的知识在未来再专帖讨论,本贴中讨论的是模拟接口(模拟信令),假设工作在zaptel下(dahdi和zapel的命令和配置文件的对应在google上很容易找到)
1.模拟接口
FXO-Foreign Exchange Office
FXS-Foreign Exchange Station
两者的差别就是FXS馈电(提供电压),而FXO不提供.普通模拟电话就是一个典型的FXO设备.
在真实的世界中,FXS和FXO总是成对出现的.由FXS接口向FXO接口馈电(提供电压),振铃;FXO向FXS传送号码(DTMF/FSK).所以对接时会出现fxs侧的用户需要首先呼叫到fxs,再二次拨号呼叫到被叫侧,而fxo侧用户可以一次直接呼叫被叫用户(一次拨号)。
在Asterisk中,FXO接口接受的是fxs信令和FXS提供给fxo信令.所以你在zapata中看到fxsXX(ls,gs,ks) 这个端口是FXO接口,如果是fxoXX(ls,gs,ks) 这个端口是FXS接口.
FXO用于连接PSTN(因为PSTN(FXS)向Asterisk的FXO接口馈电)
FXS用于连接普通电话机,(因为Asterisk通过FXS接口向模拟话机(FXO)提供馈电--这也就是为什么Asterisk接口卡上的FXS接口板需要外接电源的原因)
如果Asterisk位于企业程控交换机(PBX)的后面,Asterisk的FXO接口和PBX的模拟分机口相连,asterisk的FXS接口和PBX的模拟中继端口相连
2.模拟信令
loop start
Kewl start
grand start
这三个术语的具体区别牵扯到通讯专业领域了,普通用户需要了解的是grand start是需要专门申请的,一般用于中继线(它的好处就在于可以避免进线和出线的碰撞,提高线路使用率),而普通的电话线路一般是loop start的.Asterisk推荐的kewlstart也是一种loop start,只不过它识别supervisor disconnect信号(就是远端拆线后在发送忙音之前,发送这个信号.所以如果你的局端提供的是kewlstart信号,Asterisk默认的配置可以很正确的识别远端拆线,这也就是为什么默认的zapata.conf中不启用busydetect的原因).在中国大陆,主要采用的是loop start而北美采用的是kewlstart.
所以当你正确安装了卡板和驱动,但用默认的fxsks信令,拨号到pstn得到"all circuit busy now"的提示语时,尝试将zaptel.conf和zapata.conf中默认的fxsks改为fxsls--(修改完毕后需要重启机器而不是单纯重启asterisk)
3.恼人的忙音识别和拆线
前文提到FXO是被动接受型的,也就是说在真实世界FXS发送模拟信令,而FXO识别来自FXS的信令.这些信令工作在特定的频率,有特殊的断通比.如果局端交换能正确提供这些信号,FXO就能正确的判断线路的状态(使用中,已挂机),但实际上由于中国的国情,很多地区的信号音是非标准的,比如,规范的忙音信号应该是(0.35秒通,0.35秒断,工作频率是450kz),Asterisk在indications.conf对cn的定义就是如此
[general]
country=cn
....
[cn]
ringcadence = 1000,4000
dial = 450 ;拨号音
busy = 450/350,0/350 ;中国忙音标准
ring = 450/1000,0/4000 ;振铃音
congestion = 450/700,0/700 ;拥塞音
callwaiting = 450/400,0/4000 ;呼入等待音
dialrecall = 450
record = 950/400,0/10000
info = 450/100,0/100,450/100,0/100,450/100,0/100,450/400,0/400
stutter = 450+425
中国标准信号音
拨号音:(450Hz,-10±3dBm0,连续)——“嗡…”的连续音。
忙音:(450Hz,-10±3dBm0,0.35s on/0.35s off)——“嘟,嘟,嘟…”短促音(响0.35秒,断0.35秒)。
拥塞音:(450Hz,-10±3dBm0、0.7s on/0.7s off)——这是一种“嘟,嘟…”的短音(响0.7秒,音隔0.7秒)。拥塞音有点像忙音,但比忙音声音要长,它表示程控交换机因某种原因机线拥塞不通。
呼入等待音:(450Hz,-20±3dBm0、0.4s on/4.0s off)——在用户登记了“呼叫等待”服务项目后,如果该用户正与对方通话时,又有第三者呼叫该用用,则该用户在受话器中会听到一种微弱的信号音,这种信号是“嘟…”的短促音(响0.4秒,音隔0.4秒,再响0.4秒)。它表示有第三者在呼叫,提醒该用户是否要与第三者通话。
特种拨号音:(450Hz,-10±3dBm0,0.4s on/0.04s off)这是一种“嘟,嘟…”的一短一长的声音,当用户的电话中登记了某种程控电话服务项目后,摘机听到的拨号音就是这种特种拨号音,用以提醒该用户。这种拨号音不妨碍该用户打电话,只要在规定产时间(5秒)内拨号即可。
二次拨号音:(400Hz,-10±3dBm0、连续)
回铃音:(450Hz,-10±3dBm0,1.0s on/4.0s off)——“嘟,嘟…”的断续音(响1秒,断4秒)表示用户拨叫的对方电话已接通,正在振铃。
空号音:(450Hz,-10±3dBm0、0.1s on/0.1s off/0.1s on/0.1s off/0.1s on/0.1s off/0.4s on/0.4s off)--“嘟、嘟、嘟-”的450赫的三短一长音(短音为0.1秒,间断0.1秒,长音为0.4秒)
三方通话提醒音:(950Hz,-20±3dBm0、0.4s on/10.0s off)
催挂音:(950HZ 0.4dB)——当用户用完电话,没有挂机或话机手柄没有放好时,程控电话局会发出一种由小逐渐变大的连续音(950HZ),提醒该用户把话机挂好。
长途通知音:(450Hz,-10±3dBm0,0.2s on/0.2s off/0.2s on/0.6s off)——当用户在市内电话通话过程中,又听到“嘟,嘟”声,跟着一小段间歇,又再“嘟,嘟”,这样的短音(响0.2秒,断0.2秒,音隙0.6秒)就是“长途电话通知音”,告诉用户有人工长途电话要和您通话,请尽快结束市内通话,准备接听长途电话。这种长途电话通知音随着我国长途电话自动化的普及也越来越少了。
如果电信给你的忙音信号根本就不是这样的,Asterisk怎么可能识别呢,必然出现无法正确判断拆线的状况.(大城市这种情况就好得多).如果出现这种情况,就不得不通过ztmonitor录音后,判别它通断比,然后将这些数值填入zapata.conf的busypattern中,重启asterisk所在的服务器(例如beep持续600号码,静音400毫秒,那么busypattern=600,400)
kewlstart优于传统的Loop start的地方就在于supervisor disconnect信号.你可以看到北美的论坛上没有讨论忙音识别或者无法拆线的,而在UK,Australia就有很多类似的帖子.但是UK的经验拿到中国来也不行,因为UK的电信普遍采用了7号信令,通过CPC(Calling party Control-主叫控制)来处理拆线(remote hang up).
如果你的局端提供给你CPC,或supervisor disconnect,恭喜您,你可以摆脱恼人的忙音识别问题了.
备注: 如何确定自己的线路是否支持kewlstart
将一个支持拨号盘高亮的(不需要外接电源,直接从市话取电)普通模拟电话连接到PSTN线路上,拨通你的手机,接听手机,然后手机挂机,如果那部模拟电话在远端(手机)挂线后拨号盘灯熄灭(drop battery),那么这条线路是支持kewlstart的.不需设置busyXXX和callprogress
在中国,Asterisk的zapata.conf需要启用busydetect=yes,以及busycount=6可以解决大多数忙音识别和无法拆线的问题(基于loopstart)
zapata.conf(或zapata-channels.conf)
busydetect=yes
busycount=6 ;设置的值过小会引起通话中中断的故障
....................
loadzone = cn
defaultzone = cn
备注:
不要盲目按照国外的帖子随便增加busypattern这个参数。除非你明确知道这么作的原因。没有这个参数,Asterisk接受任何有规律的断通信号在busycount规定的次数内判别为忙音。如果busy tone的通断间隔不相等(如前文提到的beep 600毫秒,静默400毫秒),才需要手工设置.
不要把callprogress和busyxxx属性混用,这是两种不同的工作方式.目前默认工作方式的callprogress仅对北美生效
如果上述设置在你的机器上不生效,请检查线路质量,检测是否有回声,有的时候线路的杂音会干扰到Asterisk的忙音识别。
启用回声消除(见本文回声一节)
启用增益 (见本文增益一节)
如果是话务量比较密集的应用或对计费数据比较敏感的环境,建议去电信申请反极信号,同时在zapata.conf中增加
zapata.conf(zapata-channels.conf)
hanguponpolarityswitch=yes ;拆线
answeronpolarityswitch=yes ;对端应答(用于计费)
(不要和busydetect=yes或callprogress=yes同时使用)
4.CLID(主叫号码)
CLID主叫号码在使用中一般不会碰到问题,但在一些地区还是会有麻烦(我就在宁夏银川哪里碰到过).CLID工作在FSK(美规)或DTMF方式,中国这两种情况都有,甚至还有欧规的情况.如果不幸你也有这种问题,呵呵,或者购买一个转换器(几十块一个),或者采用国产的卡(如OpenVox就支持Global CLID).
备注:如何确定CLID的制式
拿家里原来的可以来显的电话机,必须是有时间显示的电话机.
1、先把机器的时间调乱.(随便调,但月份一定调)
2、然后用自己的手机打进去,电话响5声后挂掉,不要接.
3、然后看时间自动改过来了没.
如果是改过来了(年份不改不要紧,但月份一定要),那证明您家里是FSK制式。如果没改过来那您家里就是DTMF制式。
区分了fsk之后,如果在第一声之前,就显示了号码,那么就是欧制的,如果在第一声和第二声之间显示了来电,那么就是美制的。
5.DTMF
6.回声
zapata.conf(zapata-channels.conf)
echocancel=yes
echocancelwhenbridged=yes,
echotraining=800
7.增益
发表评论
-
Asterisk 中 SIP应答状态码对照表
2018-12-05 11:11 1222SIP应答消息状态码 与功能 类型 状态码 状态说明 临时 ... -
利用 tcpdump 对 Asterisk 的运行进行抓包
2018-07-12 14:50 1280安装了 tcpdump 后 执行 tcpdump ... -
FreeSwitch 与 Asterisk 各种命令及配置文件对比
2018-03-30 16:36 1245While FreeSWITCH is not a drop ... -
(测试可用|原创) Asterisk13 的 CDR MYSQL 配置
2018-03-27 11:02 914环境:亚马逊云 AMI LINUX 系统, Aster ... -
(可用/自总结)在亚马逊云 AMI LINUX 安装 asterisk 遇到的问题
2018-03-24 03:19 5721.在安装 dahdi 时,执行 make 时,出现关于内 ... -
Elastix 对接 SIP 填写信息
2017-08-08 14:05 1136[SIP-Trunk2631] username=5804 ... -
(可用)SOX 支持mp3格式转换
2017-04-06 15:35 4335Centos 通过 yum install sox 是 ... -
(转) Android Voip开源客户端比较
2016-06-17 16:28 1774在Android平台中,Voip客户端的开源项目有Sipd ... -
Asterisk中MixMonitor的参数b,接通后才录音
2016-05-12 15:49 1092在MixMonitor中,b 是一个非常重要的参数 ... -
(原创)Elastix 分机内部呼叫限制,如不同部门间不允许互呼
2015-10-29 17:48 16341. 内部分机,如何以号码规则分配给各个部门 2. 部门之 ... -
Elastix 与潮流语音网关搭配无法做呼转的解决方案
2015-10-07 14:25 756出现这个问题,主要就是在维护的网络设置中的 STUN 的配置, ... -
Elastix 显示座席的状态
2015-10-05 16:38 1172Asterisk 提供了 hints 状 ... -
U盘安装 Elastix
2015-07-17 10:02 1660安装1次ELASTIX用一张光盘?还要刻录?刻录了,下次再安 ... -
Elastix的广播与对讲功能
2015-07-17 09:55 1470Elastix的 Paging 与 Intercom (即广 ... -
Elastix 呼入来显匹配,根据不同的来电转入不同的座席
2015-07-17 09:48 760上次在群里有朋友问到,如何根据不同的呼入来显号码,匹配不同的 ... -
Elastix 设置呼叫转移
2015-07-17 09:29 1407方案目的:解决自己在公司的分机没人接听的情况,比如说 ... -
Elastix 拨号规则如何限定分机路由
2015-07-17 09:22 1697写这篇文章的目的是遇到很多朋友会问。 1.如何 ... -
(原)通话结束了,但是core show channels还存在时,解决方法
2015-01-20 15:25 920<!--StartFragment --> 先通 ... -
(原创)Elastix对接众方网关使用心得
2014-11-20 10:16 1282至目前为至,已经上 ... -
(原创) Elastix& Asterisk 做了 nat 后,仍无声解决方案
2014-11-14 22:08 3586NAT的设置方法是,打开 vim /etc/astrisk/s ...
相关推荐
asterisk 文档, voip, sip
asterisk拨号方案的配置
Asterisk 简介 Asterisk 架构 Asterisk程序框图
Asterisk 分机注册-互通-中继配置
Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...
用于控制Asterisk的.net类库,包含了AMI和FastAGI,最新的1.6.3版本
Asterisk 代码学习笔记,深入浅出asterisk,由于工作上的VOIP项目需要,最近亲密接触了一下asterisk工程代码。关于asterisk在VOIP上的伟大地位和作用,俺就不絮叨了,请看前作:Astersik+Radius简易攻略 国内对于...
基于Asterisk多种接入方式的VoIP系统研究
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版本安装包,下载之后直接编译安装即可。
Asterisk[1] 是一个开放源代码的软件VoIP PBX系统,它是一个运行在Linux环境下的纯软件实施方案。Asterisk是一种功能非常齐全的应用程序,提供了许多电信功能,能够把你的x86机 器变成你自己的交换机,还能够当作一...
Asterisk, voip, ITSP
Asterisk客户端和Asterisk manager API(AMI)文档。
Asterisk Cookbook.pdf
包含:asterisk.18.11.1源码...asterisk-18-current.tar.gz libedit_3.1-20210910.orig.tar.gz openssl-1.1.1.tar.gz jansson-2.11.tar.gz sqlite-autoconf-3380200.tar.gz pjproject-2.10.tar.gz libuuid-1.0.3.tar.gz
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 AMI 接口,下载之后,通过配置Asterisk用户名和密码即可连接到Asterisk,用户名和密码在代码中已给出,可自由修改。
详细写了如何实现asterisk视频通讯功能的 每步都有截图噢!
asterisk 的AMI代理服务程序。和asterisk之间保持一个tcp连接,可以和多个ami client的保持连接,asterisk ami event向多个client同时发送。
包含asterisk 1.2/1.4/1.8通话流程、架构概述、内核框架、代码和功能分析、PSTN、卸载asterisk、CLI命令、DialPlan详解等等。重新排版整理