- 浏览: 355196 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
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 1563SIP应答消息状态码 与功能 类型 状态码 状态说明 临时 ... -
利用 tcpdump 对 Asterisk 的运行进行抓包
2018-07-12 14:50 1386安装了 tcpdump 后 执行 tcpdump ... -
FreeSwitch 与 Asterisk 各种命令及配置文件对比
2018-03-30 16:36 1317While FreeSWITCH is not a drop ... -
(测试可用|原创) Asterisk13 的 CDR MYSQL 配置
2018-03-27 11:02 975环境:亚马逊云 AMI LINUX 系统, Aster ... -
(可用/自总结)在亚马逊云 AMI LINUX 安装 asterisk 遇到的问题
2018-03-24 03:19 6171.在安装 dahdi 时,执行 make 时,出现关于内 ... -
Elastix 对接 SIP 填写信息
2017-08-08 14:05 1210[SIP-Trunk2631] username=5804 ... -
(可用)SOX 支持mp3格式转换
2017-04-06 15:35 4399Centos 通过 yum install sox 是 ... -
(转) Android Voip开源客户端比较
2016-06-17 16:28 1842在Android平台中,Voip客户端的开源项目有Sipd ... -
Asterisk中MixMonitor的参数b,接通后才录音
2016-05-12 15:49 1208在MixMonitor中,b 是一个非常重要的参数 ... -
(原创)Elastix 分机内部呼叫限制,如不同部门间不允许互呼
2015-10-29 17:48 16791. 内部分机,如何以号码规则分配给各个部门 2. 部门之 ... -
Elastix 与潮流语音网关搭配无法做呼转的解决方案
2015-10-07 14:25 807出现这个问题,主要就是在维护的网络设置中的 STUN 的配置, ... -
Elastix 显示座席的状态
2015-10-05 16:38 1229Asterisk 提供了 hints 状 ... -
U盘安装 Elastix
2015-07-17 10:02 1708安装1次ELASTIX用一张光盘?还要刻录?刻录了,下次再安 ... -
Elastix的广播与对讲功能
2015-07-17 09:55 1529Elastix的 Paging 与 Intercom (即广 ... -
Elastix 呼入来显匹配,根据不同的来电转入不同的座席
2015-07-17 09:48 817上次在群里有朋友问到,如何根据不同的呼入来显号码,匹配不同的 ... -
Elastix 设置呼叫转移
2015-07-17 09:29 1456方案目的:解决自己在公司的分机没人接听的情况,比如说 ... -
Elastix 拨号规则如何限定分机路由
2015-07-17 09:22 1768写这篇文章的目的是遇到很多朋友会问。 1.如何 ... -
(原)通话结束了,但是core show channels还存在时,解决方法
2015-01-20 15:25 973<!--StartFragment --> 先通 ... -
(原创)Elastix对接众方网关使用心得
2014-11-20 10:16 1335至目前为至,已经上 ... -
(原创) Elastix& Asterisk 做了 nat 后,仍无声解决方案
2014-11-14 22:08 3716NAT的设置方法是,打开 vim /etc/astrisk/s ...
相关推荐
与PSTN终结类似,VoIP终结是指通过互联网将Asterisk系统的呼叫发送到PSTN网络的过程。通常情况下,这需要借助于VoIP服务提供商的服务来实现。 ##### 2. PSTN再生 VoIP再生则是指通过互联网接收来自PSTN网络的呼叫...
Asterisk是一款开源的电话交换机软件,它允许用户创建高度自定义的通信系统,包括VoIP(Voice over IP)电话、会议桥、自动呼叫分配(ACD...如果你对自定义通信系统感兴趣,深入了解Asterisk将是一次有价值的学习经历。
7. **源码分析**:对于标签中的“源码”,意味着你可能需要查看Asterisk-java的源代码来了解其工作原理或进行定制开发。通过阅读源代码,你可以理解其内部的工作流程,学习如何更好地利用API,甚至贡献代码到开源...
Asterisk拨号方案的配置是Voice over Internet Protocol(VoIP)技术中的一个关键组件,它控制着呼入和呼出电话的处理和路由。配置文件“extensions.conf”是Asterisk拨号方案的核心,它定义了呼入和呼出的处理流程...
在进行数据库配置之前,我们需要先按照常规配置对 Asterisk 进行配置,然后将配置从配置文件迁移到数据库中。数据库配置可以使用 MySQL、PostgreSQL 等数据库管理系统。 VI. 结论 Asterisk 之数据库配置方案可以...
这个模块为Asterisk提供了接入PSTN(公共交换电话网)的能力,使其能够处理VoIP和PSTN之间的通话。 以下是压缩包中的文件及其在chan_ss7模块中的作用: 1. `ANNOUNCE`:这通常是一个文档或公告,可能包含了关于...
在使用前,你需要将其解压,并根据项目需求引用相关的库文件到你的.NET项目中。 总结来说,Asterisk.NET 1.6.3 提供了.NET平台下控制Asterisk PBX的强大工具,通过AMI和FastAGI接口实现了丰富的电话系统功能,如...
标题“asterisk info 录音实现方案”中提到的是利用Asterisk的info事件来触发录音操作,并通过HTTP协议向...实现这样的功能,需要对Asterisk的通话处理流程有充分了解,并且要能熟练修改和自定义其配置文件和功能模块。
Asterisk是一款开源的IP电话系统,它允许用户创建自己的通信平台,支持VoIP(Voice over IP)服务,包括电话...了解如何正确安装和配置语音包是提升Asterisk服务质量的关键,特别是对于面向中文用户的通信解决方案。
首先,让我们了解一下Asterisk的核心概念。Asterisk是一个PBX(Private Branch eXchange),它能够管理电话线路,路由呼叫,并提供各种电话服务,如语音邮件、会议呼叫和自动话务员。通过使用SIP协议,Asterisk可以...
在安装和配置过程中,需要访问一些关键的网页资源,如PSTN、G.729和G.711编码的介绍,以及Digium和Asterisk的官方维基百科页面。 在实际部署中,Asterisk机器的LAN地址是90.0.0.3,这对于网络配置和远程访问至关...
在实际开发中,除了掌握`asterisk-java`库的用法,还需要对Asterisk的基本概念和工作原理有一定的理解,比如了解呼叫流程、通道、队列、拨号计划等。此外,熟悉Asterisk的AMI文档也很重要,这样可以更好地理解和利用...
Asterisk权威指南中文(第3版) Asterisk权威指南(第3版)第15章自动话务员 Asterisk权威指南(第3版)第02章Asterisk体系结构 Asterisk权威指南(第3版)第05章用户设备配置 Asterisk权威指南(第3版)第06章Dialplan基础 ...
13. **PSTN支持**:Asterisk不仅支持VoIP,还可以通过FXO/FXS接口与传统电话线路(PSTN)连接,实现VoIP与PSTN的互连。 14. **CLI命令**:Asterisk提供命令行接口(CLI)进行实时监控和控制,如查看状态、修改配置...
在本场景中,我们讨论的是Asterisk的16版本安装包,这将引导我们深入理解Asterisk的核心功能、安装流程以及如何进行编译和配置。 1. **Asterisk核心功能**: - **PBX(Private Branch Exchange)**:Asterisk作为...
这个命令用于列出Asterisk当前加载的所有模块,这对于了解系统的运行状态和调试问题非常有用。你可以看到每个模块的功能、版本和状态。 2. **sip show peers** 此命令显示所有注册的SIP(Session Initiation ...
了解Asterisk的基本概念,如DAHDI(数字接入分机接口)、通道变量和全局变量,以及PBX(Private Branch eXchange)的工作原理,对深入学习Asterisk至关重要。 10. **C语言字符串处理**: C语言中的字符串处理是...
### 基于Asterisk多种接入方式的VoIP系统研究 #### 1. 引言 自1995年以色列VocalTec公司推出InternetPhone以来,VoIP技术的发展经历了翻天覆地的变化。这项技术不仅改变了人们的通信方式,还促进了电信行业的转型...
在配置和使用Asterisk时,了解如何处理CID和管理Dahdi通道是非常关键的。这涉及到设置正确的拨号规则,确保Asterisk能正确识别和处理CID信息,以及配置Dahdi通道以适应不同的电话服务提供商和硬件设备。熟练掌握这些...