(转)Asterisk模拟线FXO的主叫号码识别(来电显示)

 CID (CallerID,CLID,主叫号码,来电显示)是在实际使用中常遇到的另外一个常见问题,主叫号码格式分为FSK(美规)或DTMF方式。主叫号码可能会在第一声振铃之前送过来,也可能在第一声振铃之后,第二声振铃之前发送过来。 

1.如何确定CID的制式

最简单是拿原来可以支持来显的电话机来看(必须是有时间显示的电话机)。

1、先把机器的时间调乱.(随便调,但月份一定调)

2、然后用自己的手机打进去,电话响5声后挂掉,不要接。

3、然后看时间自动改过来了没.

如果是改过来了(年份不改不要紧,但月份一定要),那证明是FSK制式。如果没改过来那就是DTMF制式。

2.区分FSK的制式

区分了fsk之后,如果在第一声之前,就显示了号码,那么就是欧式的FSK;如果在第一声和第二声之间才显示来电号码,那么就是美式的FSK。

3.主叫号码的制式与运营商和地区的关系

主叫号码的制式与运营商(是南方电信还是北方网通,联通,或者是铁通)关系不大。即便是同一个城市的同一个运营商,也可能提供两种制式的主叫号码,这主要取决于电信交换机。

4.Asterisk对主叫号码制式的支持

Asterisk是美国人做的,所以对FSK制式的支持相对比较好,但是如果遇上DTMF制式的主叫号码,确实挺麻烦的。解决办法有两个,一个是花50块钱买个转换器(就是那个DTMF转FSK的)或修改驱动程序来解决。可以参照OPENVOX的方法,修改两个文件并重新编译zaptel驱动,将OPENVOX的wctdm.c覆盖掉,opvxa1200.c里面的……。

在后面的文章中,我们会专门针对DTMF制式的主叫号码识别做专文介绍。

5.小知识:什么是FSK

FSK(Frequency-shiftkeying):频移键控,是信息传输中使用得较早的一种调制方式,它的主要优点是:实现起来较容易,抗噪声与抗衰减的性能较好,因此在低速数据传输中得到了广泛的应用。以前有一个叫做固网短信的业务,就是利用了FSK技术来传递短信息的。

FSK也有很多标准,中国、美国、澳大利亚采用的bellcore标准(贝尔202/V.23)。