SPA400 对接Asterisk 需要修改的一些资料

发布于:
服务器技术

PSTN 忙音检测

FXO端口(外线,O口,中继线,模拟线,电话线,红模块)用在非北美地区的模拟线路上时,通常用的是loopstart信令,靠识别来自FXS的有特定的频率和特殊的通断比的规律声音(信号音)来判断线路的状态(使用中/已挂机/用户闲)。
由于包括中国在内的很多发展中国家的国情现状,很多地区的信号音是非标准的。下面我们以中国为例,介绍Asterisk 如何判断模拟卡线路上的状态。
1. 标准的信号音
在中国,规范的忙音信号应该是(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秒)就 是“长途电话通知音”,告诉用户有人工长途电话要和您通话,请尽快结束市内通话,准备接听长途电话。这种长途电话通知音随着我国长途电话自动化的普及也越 来越少了。

非标准信号音的处理

事实上,除了一些大城市的固网电信公司交换机能够提供标准信号音外,由于中国电信经过很长时间的七国八制的盲目发展阶段,很多地方的信号音是不标准的。

busydetect=yes
busycount=6;设置的值过小会引起通话中中断的故障
………………..
loadzone = cn
defaultzone = cn

提 示:不要盲目按照某些技术帖子所说的,随便增加busypattern这个参数。除非你明确知道这么作的原因。没有这个参数,Asterisk接受任何有 规律的断通信号在busycount规定的次数内判别为忙音。如果busy tone的通断间隔不相等(如前文提到的beep 600毫秒,静默400毫秒),才需要手工设置.

如果上述设置在你的机器上不生效,请检查线路质量,检测是否有回声,有的时候线路的杂音会干扰到Asterisk的忙音识别。

极性反转信号(反极信号)

如果是话务量比较密集的应用或对计费数据比较敏感的环境,建议去电信申请反极信号(反极信号就是极性反转信号,跟kewl start不是一回事)。同时在zapata.conf中增加:

hanguponpolarityswitch=yes ;拆线
answeronpolarityswitch=yes ;对端应答(用于计费)

这两个设置不要和busydetect=yes或callprogress=yes同时使用。

4. 小技巧: 如何确定自己的线路是否支持kewlstart
将 一个支持拨号盘高亮的(不需要外接电源,直接从市话取电)的普通模拟电话机连接到PSTN线路上,拨通你的手机,接听手机,然后手机挂机。如果那部模拟电 话机在远端(手机)挂线后拨号盘灯熄灭(drop battery),那么这条线路是支持kewlstart的,不需设置busyXXX和callprogress。
不要把callprogress和busyxxx属性混用,这是两种不同的工作方式.目前默认工作方式的callprogress仅对北美生效。

SPA400 对接Asterisk

PEER Details

host=192.168.1.10
dtmfmode=rfc2833
canreinvite=no
context=from-pstn
insecure=very
secret=password
type=peer
username=SPA401
fromuser=x.

Register String

SPA401@192.168.1.10/spa401

Register String 要填写和SPA400里面配置的一样