- 论坛徽章:
- 0
|
我所常见的就是NMS,dialogic,东进卡.前些年好像用dialogic和东进较多,现在很多集成商都纷纷投奔NMS.今日百度1doc,觉得不错,转至此.
编者按:
2004-3-09 - 2004-3-2N 我在广证茂名安装调试基于东进七号信令板卡的电话委托程序,遇到了很多希奇古怪的问题,这些问题以前从没遇见过,得到的教训只能用惨痛来形容.我现在写出来,形成文字,做为一个总结性的备忘,也希望这篇文档能给读到它的你一点点有用的帮助.
关于7号信令
七号信令,我不想说得太多(太多了就漏底了J),我认为只要知道几点就行了.
1. 七号信令是属于支撑网中的信令网,其实就象是我们中间件和外围通讯时发的通讯包协议,不同的业务有不同的包.象摘机,挂机,复位等一些事件,都是由中心端(程控交换机)与客户端(东进板卡)进行发包交互的.但是语音是每个语音时隙单独的.就是说,放音,收码是不需要经过信令消息的,这就是为什么用数字电路也会出现收码不准的问题,因为他只是放音嘛.(我原来以为按键是发个包通知的,都是被彭海波误导的,扁!)
2. 七号信令方式一般用于电信程控交换机之间通讯.接续时间快,特别是长途呼叫时很明显,一般不足一秒就可建立联接(快吗?没感觉)
3. 七号信令是一种公共信道信令. 这是什么意思呢?简单来说,就是把所有线路的控制信息放在一个通道里发出来,不需要每条线都安装信令发送设备,这样可以节省很多设备投资(电信是省了很多,我们可麻烦死了).这种发送信令的通道我们叫公共信道信令.(对应的是随路信道,语音和信令在一起跑),一对PCM中32路有两时隙是不能被程序用到的,信令通道就是利用其中一个时隙来发送链信息的.因为单独一个信道跑控制信令,如果这个链路当机了怎么办?所以,在稍大规模的系统中,一般是有备份链路的.我装的这个环境里有420线,双链路.正常环境下,两个链路一路工作,各负责所有系统的一半信令,如果一个链路出现问题,会发向交换机发出一个倒转消息,第二个链路自动为所有通道提供信令通道服务.我在安装时,却出现一个链路停止服务后,另一个链路没能提供全部的信令通道服务,结果,使得整个系统只有一半的语音通道可用,一旦打满,就提示忙了.这个原因是因为驱动版本的问题.下面会具体讲到.
东进七号信令卡和驱动程序
东进七号信令卡我们主要用ISA的D320/640E1 SS7卡和D320/640E1-V2 SS7卡.这两种卡自带的驱动版本是不一样的.但是,东进新发布的集成驱动包DJDBDK是都可以驱动起来的.但如果可能的话,不要把不同版本的卡放在同一台机器上.不然,被折磨的死去活来的可能就是你了J.卡后面的PCM接口,从上往下对应的是 收1,发1 ,收2,发2,千万要注意哪对PCM是有链路的,待会要在配置文件里设置链路在哪个PCM上,一定得对应上,不然SS7Router启动后就是一把小红叉了.如果收发插反了,一般情况下会报警的.不同的驱动的SS7Router通讯有些问题.如V1卡装好自带驱动后, SS7Router版本是1.0.而V2卡则是2.1.0或是其它的.这个SS7Router的版本很重要,因为控制信令是通过它实现路由转发的,你不见它的名字都是叫Router吗.一个系统内SS7Router的版本最好一样,即使你的板卡不一样也如此.另外一个小的细节是,老的SS7Router产生的通讯数据是不能被新驱动带的DiagNo7程序分析的,不过,只要把前面的 84开头的两个字段删掉就可以用分析了
东进的百宝箱
东进提供给我们的工具比较多,如果用好了能很快的定位问题.常用的工具有以下几个:
1. DEMO这个程序是我用的最多的,在不能排除我们程序的问题时,最好用上这个工具看看, 这个程序有源代码的,你可以自个研究一下.他的操作是很简单的,只有收码放音.因为是范例,所以源代码被很多人采用,结果导致我们原来的CTI程序也是用这种OnTimer模式来控制的,导致了CPU利用率过高,更是直接导致俺到茂名出差栽了跟头,5555(旁白:我靠,扯太远了吧!)咳!这个DEMO程序是个最简单的自动语音应答系统,一般在系统装好驱动后就要用来测试板卡的,如果能正常放出音来按键有效,就说明是正常的.(除非你有我这般好运,能碰到交换机出错,发错码J)
2. Dial程序,这个程序主要是用来做呼出的.如果怀疑电信的中继有问题,可以搭建东进板卡的测试环境来测试.测试环境至少要用两块卡,装在不同的机器上,一台运行Dial程序,一台运行Demo程序,Dial程序做呼出,呼出到Demo上,相当于是电信的程序交换机一样.彭海波把这个程序改了一下,使之可以每隔一秒并发呼出,并模拟用户按键,用来测试流程或CPU利用率等,如果有用的上的地方,建议试上一试.(俺也在这个程序上改了一个,比老彭的那个还厉害,可并发呼出所有可用通道,可能是太厉害了,经常把被测试的程序搞出问题来J)
3. DiagNo7程序, 这可是百宝箱里重量级的宝物.这个工具用来查看SS7Router中与电信交换机通讯产生的数据,通过分析数据,你可以知道问题出在哪.如果你功力够深的话,通过分析数据你可以很容易的判断电信的大爷们在哪搞错了.我一定要学会看数据,不然老被电信欺负,555.
配置文件 TCE1-32.ini 和 TC-No7.ini
七号信令的驱动主要用到这两个配置文件.其中TCE1-32中是关于一些硬件的设置,如中断,IO等,绝大多数情况是不要修改的,只要装好系统后,运行AutoCheck检到卡,保存就可以用了.TC-No7.ini是七号信令的专用配置文件.都是软件方面的设置,现在就这两个文件中我们用到的部分讲一下用法.
TCE1-32.ini:
------------------------------------------------------------------------------
[SYSTEM]
PcmNum=2 ;改得最多的就是这个配置,这个设置表示本机PCM的数量,60线卡都是2,如果你想想60路做为30路来用,设为1就可以了,用的时候把PCM插在卡的上面那对.(一般谁会把60路卡当30路来用呢,岂不是太浪费的,浪费是可耻的.J)
MasterClock=0 ;一般生产环境都设为0,但如果搭模拟交换机时你也设为0,链路是可以通的,但是却收不到DMTF码.为了这个设置,我和老彭浪费了快一个小时,还以为是程序问题,改了老半天.黔驴技穷才试着改了一下,结果就可以了.汗…
CRC=0 ;不知为何,新版本的DJDBDK装好后默认是1的,但似乎现在很少有电信用到这个通讯时确保正确所采用的循环校验功能,如果连不上电信,可以试着改成1试试.
[PcmInfo]
CallerEnable[1]=0 ;收不收主叫(来电号码),这个是低层的,不设为1的话,我们的程序是收不到的来电号码的.要想收到来电号码,有三个环节不可少1.中继线有无开通来电显示功能,2.就是以下连续的这几个开关了,3.就是我们程序的开关了.哦,对了,还有很常见的第四条,如果来话方是从异地交换机通过多次路由转过来的,很可会把主叫信息给丢掉.或者用一些小的手机服务网络,则可能在与电信网的对接中把这部分信息给丢掉.
CallerEnable[2]=1 ;第二对PCM收主叫
CallerEnable[3]=0 ;第三对PCM不收
CallerEnable[4]=1 ;第四对PCM收主叫
------------------------------------------------------------------------------
TCE1-32.ini一般只要设这几项,其它的都是由AutoCheck.exe检测后保存产生的,或采用缺省值,不需要单独设.
TC-NO7.ini: 这是最重要的部分,各位同学看好了J
------------------------------------------------------------------------------
[LinkInfo] //对于有链路的节点有效
DPC=1.2.3 ;这个是电信的信息点地址.电信俗语:”点码”者也
OPC=1.2.3 ;这个是电信的分配给我们的信息点地址.
;这两项其实就是和在Internet上使用的TCP/IP协议差不多,这个地址是唯一的,电信跟据这个区分不同的客户.实际中设多少要问电信才知.如果你搭模拟交换机,只要两端设的相反就行,据说全世界交换机都不一样的.
[PcmInfo]
PcmNum=4 ;整个系统的PCM的数量.30线就是1,60线就是2,420路就是14.注意,特别说明这是整系统的,不是指单机的
LocalIP=172.16.82.21 ;本机的Ip地址.如果你用于双链路的系统里,这个本地IP就很重要了,驱动根据这个判断是不是主链路.实际应用中,多台机器的配置都是一样的,只有这个配置不一样,用来区分机器
IsSP[0]=1 ;此E1是否有链路 ,1:有, 0:无. 注意,链路一般是开在第16时隙的,0时隙被用作同步.是否有链路是要和电信确定的.由电信分配在哪个E1上就对应设成1就可以了,如果设得不对,在SS7Router中,链路信息会显示”不可用”状态的
IsTerminal[0]=1 ;是否是终端处理,不改,默认就是1
IP[0]= 172.16.82.20 ;这是说这组设置是对应系统中哪台机器上的
Port[0] = 2000 ;开放的侦听端口,因为要和其它机器互相通讯
PcmID[0]=0 ;链路对应本机PCM编号,注意,是本机的.一般按卡的地址,从 到大,地址从0到n.
PcmIndex[0]=1 ;非常重要,这是电信给我们的数据编号,因为电信做数据时,把这个PCM做成了CIC的高七位,用来定位,非常重要
LinkIndex[0]=0 ;链路号,多链路从0到n,如果本机无链路,则设为0就可以了
SLC[0]=1 ;默认为1
;上面这段描述的信息是:在IP地址为172.16.82.21的机器上,存在一个链路,链路的电路编号是1,对应接在语音板卡的第一个PCM上
IsSP[1]=0
IsTerminal[1]=1
IP[1]= 172.16.82.20
Port[1] = 2001
PcmID[1]=1
PcmIndex[1]=2
LinkIndex[1]=1
SLC[1]=2
IsSP[2]=0
IsTerminal[2]=1
IP[2]= 172.16.82.20
Port[2] = 2002
PcmID[2]=2
PcmIndex[2]=3
LinkIndex[2]=1
SLC[2]=3
IsSP[3]=0
IsTerminal[3]=1
IP[3]=192.168.0.161
Port[3] = 2003
PcmID[3]=3
PcmIndex[3]=4
LinkIndex[3]=1
SLC[3]=4
奇怪的问题
1. 一块V2卡放音正常,有时候却收不到码.
这种故障的表现形式是打电话进去听到声音,但是操作却收不到码.而且,能打通的可以操作的通道全是偶数通道.出现这种情况,排除链路问题后,一般是硬件的问题,如卡老化了,或是接口槽不稳定造成的.换卡换槽换机测试可解决.
2. 一打开东进DEMO程序,过一会,可能会收到一些DMTF编码.
据了解,电信使用的的交换机是华为的交换机,型号是128M的,版本号为:V610-R105-M5009.发现在没有收到来电包时,在语音时隙上竟然存在放音,真是莫名其妙.为什么我们程序看不出问题来,是因为我们程序在没有摘机前,是不会去收码的.DEMO却是在不停的收码(有机会,大家可以在别的地方查查,也许很多地方都有问题哦)
3. 一接通电话经常是听不清第一句话的前面几个字.
这种情况的原因是因为电信发来话消息,东进卡返回证实消息后,实际电信的硬件还没的真正连接起来,驱动就放音产生的.解决的办法有两个:1.换电话机.我用一台sony的电话机和一台国产电话机测试,发现Sony的基本可以,可能是它的电路转换要快一点. 2.驱动的问题.如果用的是老的卡,可以装最新的驱动用回老的驱动里的TCNo7.dld文件试试
4. 在多次Download和重启SS7Router后,发现系统窜线.一打通电话就提示查行情拨1,查委托拨2.等
这可是非常严重的问题.具体原因估计和东进驱动程序有关.东进老的V1板卡驱动现在是没什么人维护的.在大规模系统(>240)时,双链路,组成系统的机器的驱动版本又不一致的话,很可能会出这种情况,解决的办法想办法装成一样的驱动程序,尽量不要在开市时间去Download.如果非得做的话,也要把所有的PCM全部Download一下.
5. 运行过程中出现一对PCM阻塞的情况.
这种情况和线路有关系,如果这种情况不影响使用,就不要在开市时间去重新Download了,以免出现窜线的情况(惨痛教训得来的经验) 如果非得做的话,也要把所有的PCM全部Download一下.
6. SS7Router中显示的PCM状态:不可用,实际是可用的.
东进驱动问题,换新驱动解决(我可是折腾了半天才发现的,还以为哪不正常呢),正常工作时,在SS7Router中应该是PCM状态:工作中,网络状态:工作中 链路状态:工作中 同步状态:未知或是 同步
7. 在搭东进的测试环境时,发现Dial程序呼出的DTMF码,Demo程序老是收不到,但放音是正常的.
我和彭海波在近一个小时的折腾后,发现是在TCE1-32.ini中有一个MasterClock必须设为1才行.郁闷中…
和电信沟通
对于我们做CTI的系统来说,是经常要和电信打交道的.据我们和电信的接触经验,我发现在有问题时,电信一般是不会主动承认问题的.所以,我们必须了解一些电信知识,必要时要求其进行一些常规的测试.对于数字业务来说,电信是主要分成两块来做的,一块是传输部门(俗称”搞电路的”),一块是数据部门(俗称是”做数据的”).传输部分负责从电信交换机到我们语音板卡的过程是正常的,线路是通的.线路误码率不高就OK了,做数据的负责信令与板卡的沟通是否正确,收发控制消息是否正常.等等.这种关系就象我们系统集成中心把网络布好,服务器到位后,由柜台工程人员去安装系统是一样的道理.我们经常遇到的问题是:某某券商说:哎呀,我新上的系统接上中继线打电话没反映,找电信来测了很多次了,线路是通的,什么什么的.这只能说明电路是正常的,那你就应该建议客户去数据方面查查.
因为电信机房是可能看到我们这边中继线的状态的,如果你怀疑中继有问题时,我们从这边的表面现象又看不出问题来时,可以打电话到电信机房去查一下状态,便于找到问题.最后,还有一个态度问题.电信一般脾气比较大,不要和他们争什么问题.谦受益,满招损是时刻不能忘记的.J
电信的数字线路常规测试主要用的方法有:
1. 环路测试.就是把一对PCM短接起来,让机房看状态,他如说收发是正常的,说明线路是通的. 这种”通”真是很低级的一种.只是物理上有通路而已,不能表明线路是”通”的,一定要记住,”数据通才是真的通”
2. 专用工具测试.在电路测试中,一般电信会用一些如”2M数字综合测试仪”之类的专用仪器来测试电路状态,这个东东可以测很多方面,如误码,语音,时隙状态等一系列问题.简单的环路测试通过后,可以考虑用这种方法再测一下电路,不行的话再找做数据的部门.这是一个基本的快速的解决问题的流程.
3. 中继测试.如果某些通道一直打不通,你可以要求电信做个中继测试,一般是他们自已测,也可能会给你一串测试号来测试指定的一个中继号,只要注意一下时隙别错就可以了.如:*12*001*0*0510#2936688等,用电话拨通后会打在一个指定中继线上,通过这种方式,可以方便的判断是否有线路阻塞的情况. 当然,如果是模拟线的话,就可以拨打映射号来进行中继测试.在做中继测试时,根据交换机的不同,一般拨出去测试的电话必须和中继是在一个交换机上的.
系统性能分析
希望各位有心人能收集一些数据给我们,万分感谢.
金证电话委托KDTele3.5资源统计表
数据采样说明:
此数据在东进卡D640E1-V1 和D640E1-V2卡 ,7号信令,420线6台机器,金证KDTele3.5系统上采样获得.数据不考虑短时间的峰值情况.
简化版脚本不支持DBF配置,功能菜单配置,拨报配置
30路同时在线
60路同时在线
120路同时在线
PIII600 256M 硬盘5400转
标准脚本
CPU:30%-60%
语音非常流畅
CPU:95%-100%
语速稍变慢,有时有颤音
无
简化版脚本
CPU:10%-60%
语音非常流畅
CPU:90%-100%
语音流畅
无
P4 2.4G 256M 硬盘7200转
标准脚本
CPU:10%-60%
语音非常流畅
CPU:50%-60%
语音非常流畅
CPU:80%-90%
语音流畅,通讯时受中间件性能影响,稍有停顿
简化版脚本
CPU:10%-60%
语音非常流畅
CPU:40%-60%
语音非常流畅
CPU:70%-80%
语音流畅
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63586/showart_516432.html |
|