(原创)Elastix对接众方网关使用心得

至目前为至,已经上线了两个E1的项目,使用的都是 Elastix 对接众方语音网关,网关的型号为 ETG-300.遇到的问题也不少,在这里做一个小总结,欢迎指正。

在描述问题前,关于众方语音网关的一些基本操作(如来电监控、配置设定等)请参考官方的相关文档。


问题一:链路状态正常,物理接口也正常,来电无法送入语音网关(在网关无法监测到任何的来电信息),呼出时,出局被 pra 拒绝。

问题分析:出现这种原因,很有可能就是链路的状态的问题,物理接口状态、链路状态正常,但是无法呼入、呼出,很有可能就是E1帧格式(E1 Framing)的问题。

E1帧格式有三种:DF、CRC-4及CRC-ITU, 默认为CRC-4。 设置何种帧格式,主要是取决于 PRA 的协商,一般PRA会提供相关的说明,如:E1 Framing:PCM 31 CRC off。 则表示当前的E1帧格式不允许 CRC 的,只能使用 DF 格式。

问题解决:打开ETG页面->基本配置, 找到帧格式(E1 Framing),选择 DF。 最后,必须重启方可生效。

 

问题二:呼出时,在语音网关可以监测到出局信息,但没有送到 pra ,在 SIP 已经被拒绝,导致呼出失败

问题分析:在语音语音网关可以监测到出局信息,表示与elastix 是无关的,即Elastix 是正常。那么问题肯定是出在语音网关的配置上。

问题解决:一般来说,这种情况,就是出局的号长判断出了错误。一般有两种方式可以解决

 (1)配置页面->系统配置->号长管理

          号长管理,就是定义出局时,被叫的号码格式,只有与号长管理中定义的号长及规则一致时,方可出局,否则不可出局。在这里添加一条当前的出局规则即可。

 (2)取消出局被叫号长的判断

          第一种解决方法有些复杂,而且对所有的出局号码都需要定义规则,比较复杂。由于出局规则可以在Elastix 进行定义,所以在网关端可以取消出局被叫的规则判断。

         通过命令: telnet  网关IP    输入用户名,密码后

         第一步:执行  en , 再执行 ^isql 进入参数数据表,这里会提示用户名及密码, 默认都是 sa 即中进入

         第二步:select IntParam (*)      查询所有的被始化参数, 找到值为 176 ,即以下的数据

         ROWID    ParamID                                                        ParamDesc   ParamVal
--------------------------------------------------------------------------------------------
    143             176                 Is pstn out called form voip trunk no judge len                       0
          第三步:将 paramVal 为0,修改为 1

                        update IntParam (ParamID=176) (ParamVal=0)     //表示将 paramid 为 176 的,记录的值修改为1

        

 

          EIS(sql)#update ?      (update 的修改语法是)
 Command Help: update TableName (* / [Condition1],[Condition2],...) ([Param1],[Param2],...)
 the Condition * means all records, Condition and param syntax: FieldName=Value

                 第四步:使用参数生效

                               执行 db save

                 第五步:重启设备

问题三:有些国家出局时,需要强制将特服号的区号加上,方可正常外呼,比如菲律宾,特服号304XXXX时,出局的主叫(CALLERID) 必须加上区号 02, 但是这时,可能语音网关会拒绝,并在SIP端将其拒绝,无法送到 pra处理。

 解决:需要更改 intparam ,如前一个问题一样,这次需要修改的参数是

 190        112         Disable caller long number check(0:no, 1:yes, default:0)          0

 

需要将 ParamVal 由 0 ,修改为1 。 修改的方法与前一个问题一样。

 

问题四:打国际长途时,在网关页面上,配置了以0开头,拨打0086XXXXXXXXXXX,由 pra 出局时,还是会被拒绝在 SIP 端,无法送到 pra 处理。

 问题解决:配置了 0 开头,并不能匹配 00 开头,需要另配一个 00 开头,由 pra 出局的配置

 

问题五:如果以 FXS 潮流语音网关,接普通话机。但是潮流语音网关与ELASTIX不属于同一局域网时,会导致两个分机间拨打,无声音,或是单通的情况。

 问题解决:需要在FXS网关上,将stun 选上,并将 stun服务器指向 FXS语音网关所配置的网络网关。

 

问题六:分机拨打外线时,经常会出现拨号后,收 ACK 的信息出错,并提示

Retransmission timeout reached on transmission 62911ewrwerwerwerwresdsfsdfsd@192.168.108.XXX:5060 for seqno 102(Critical Request) -- see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions

问题解决:一开始,总以为是 nat 的问题,所以不断的检查,但是最后发现,问题的根源,就是Elastix 与 众方网关对接时,没有指定语音编码导致,在 elastis 中的 trunks 中,查看一下与众方对接的信息

host=192.168.108.180
port=2080
type=friend
qualify=yes
原来的配置是这样的。要配置语音编码,必须要加上 disallow 及 allow 如下:

host=192.168.108.180
port=2080
type=friend
qualify=yes
disallow=all
allow=alaw
具体的编码,就要看与 pra 的协商情况了。

 

问题七:使用手机拨打特服号时,分机已经响铃了,在未接听前,手机端听不到任何的回铃音。只有接起来后,方可听到声音。这样的体验比较差。

问题解决:修改 intparam 中的

80        114             Force to play local ringtone(0:no, 1:yes, default:0)          0

将 0 修改为 1

1.需要机房提供 信令点在哪个E1的哪个时隙、OPC和DPC、SLC、CIC从哪开始、ISUP还是TUP 呼叫是透传(如果是透传又分普通透传和呼叫前转两种)的还是隐藏的。 2.进入设备 EIS(config)#dev 40 1 E1[1][0]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][1]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][2]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][3]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][4]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][5]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][6]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 E1[1][7]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x2, errstate=0xf0, loopstate=4 useflag=为1代表PCM做了对应数据 state=状态为1,代表E1物理连接正常。 3.EIS(config)#ex EIS#sh mcc 16 ------------MCC global Informations----------------- HDLC mode is: ST_CO_64K. MCC Init Status = 1. MCC Init times = 1. MCC GOV FAIL times = 0. MCC GUN FAIL times = 0. MCC handle int times = 0. MCC recv int circle table ptr= 1459. -----------------------END-------------------------- ------------MCC channel 16 Informations----------------- chan16 send frames num = 27207878. chan16 recv frames num = 283003467. chan16 send FAILED num = 0. chan16 recv FAILED num = 0. 红色部分如果一直在增大,证明数据传输正常。如果变化的数字是一样的,E1可能自环。 chan16 send frames num = 27207878. chan16 recv frames num = 0. 如果这样的情况,就代表机房没做数据,或则双方的信令点没对上。 4.按照机房数据添加 这三个表 7号中继管理的 Web界面 命令界面 TG的OPC和DPC是10进制。如果机房提供的是非10进制的,需要转换。 7号MTP链路管理 Web界面 命令界面 上图是一个信令点在第一个E1的16时隙的例子。时隙一般是1或则16。 7号PCM管理 WEB界面 命令界面 上图是一个CIC从0开始的。如果从33开始就是PCM从1开始。 只要 和 这两个表做了数据,并和机房对应上,这个时候 Sh ss7 c就能看到7号链路建立,如果没建立成功。可以sh ss7 e看看有无报错。 号码属性的配置可以通过以下命令修改 EIS(config)#ss7 c Call change(y/n):n Not send LSTM(y/n):n 不发送LSTM Protocol is TUP(y/n):n 是否TUP Protocol is ISUP(y/n):n 是否ISUP Calling is subscriber(y/n):n 主叫用户号码 Calling is national(y/n):n 主叫国内号码 Calling is international(y/n):n 主叫国际号码 Called is subscriber(y/n):n 被叫用户号码 Called is national(y/n):n 被叫国内号码 Called is international(y/n):n 被叫国际号码 Protocol is itu-t(y/n):n Protocol is ansi(y/n):n Peer is shanghai alcatel-bell(y/n):n 送隐藏号码 清空numsect 表,在callpool表里加上机房提供的主叫号码 默认透传只需要 insert NumSect (0,0,255,65535,0,,,,0) 号码池里有这条数据即可 如果是呼叫前转的。 EIS(config)#select intparam (paramid=57) ROWID ParamID ParamDesc ParamVal -------------------------------------------------------------------------------------------- 107 57 Number transfer type(0:no trans, 1:PRA trans 2:SS7 trans) 2 清空numsect 表 在callpool表里加上机房提供的主叫号码 比如: 号码池 0206666 主叫 07557777 被叫: 1358888 eix上送过来的呼叫:主叫 07557777 呼叫被叫1358888 通过tg送出去之后,消息里面看起来就是 07557777呼叫给0206666,然后0206666呼转到1358888的 然后被叫手机1358888上还能正常显示主叫 07557777 pra对接 Pra的配置相对于7号就方便很多,只要和机房确定 每个E1是独立D通道。 还是就第一个E1有D通道,其他E1共用这个D通道。 交换机的接口是用户侧还是网络侧 如下图 这是一个每个E1都是D通道,交换机是网络侧的配置 命令里的显示 EIS(config)#db ex pratable insert PraTable (0,0,1,0,0,255,0,0,0) insert PraTable (1,0,1,1,0,0,0,0,0) insert PraTable (2,0,1,2,0,0,0,0,0) insert PraTable (3,0,1,3,0,0,0,0,0) insert PraTable (4,0,1,4,0,0,0,0,0) insert PraTable (5,0,1,5,0,0,0,0,0) insert PraTable (6,0,1,6,0,0,0,0,0) insert PraTable (7,0,1,7,0,0,0,0,0) EIS(config)#sel pratable (*) PRA群号 PRA接口ID E1端口号 是否D通道 绑定PRA群号 接口属性 ROWID PraGrpNo PraId SlotNo PortNo DChannel BindGrp E1所在槽位号,固定填1 NetMode CircSel Reserv 接口属性 -------------------------------------------------------------------------------------------------------- 0 0 0 1 0 0 255 0 0 0 1 1 0 1 1 0 0 0 0 0 2 2 0 1 2 0 0 0 0 0 3 3 0 1 3 0 0 0 0 0 7 4 0 1 4 0 0 0 0 0 6 5 0 1 5 0 0 0 0 0 5 6 0 1 6 0 0 0 0 0 4 7 0 1 7 0 0 0 0 0 如下图 这是一个只有第一个E1是D通道,其他E1共用第一个E1的D通道 命令行是 EIS(config)#db ex pratable insert PraTable (0,0,1,0,0,255,0,0,0) insert PraTable (1,0,1,1,1,0,0,0,0) insert PraTable (2,0,1,2,1,0,0,0,0) insert PraTable (3,0,1,3,1,0,0,0,0) EIS(config)#sel pratable (*) ROWID PraGrpNo PraId SlotNo PortNo DChannel BindGrp NetMode CircSel Reserv -------------------------------------------------------------------------------------------------------- 1 0 0 1 0 0 255 0 0 0 0 1 0 1 1 1 0 0 0 0 2 2 0 1 2 1 0 0 0 0 3 3 0 1 3 1 0 0 0 0 说明:  PRA群号:ETG/EIG进行PSTN呼出路由配置时所用的序号(由用户自己选择,一个PRA群需要配置一条D通道,一个PRA群可以包含多条E1);  PRA接口标识:每个PRA接口的标识(PRA接口ID代表该E1的标识,要与交换机保持一致;1条E1为一个PRA接口时一般填0);  槽位号:一般固定填写1;  E1端口号:接入PSTN的E1在EIG上对应的编号,编号依次为0-7;  是否D通路:是否将当前E1的第16时隙配置为PRA接口的D通路(信令通路),Dchannel=0代表配置了D通道;  NetMode=0代表用户侧接口,NetMode=1代表网络侧接口  CircSel为电路分配时的选择方式,电路选择方式(0最小,1最大,2循环) 1、如果是一个独立的PRA群,将“绑定PRA群号”配置成255即可。 2、如果要将PRA群0、PRA群1、PRA群2绑定,可以将PRA群1、PRA群2的“绑定PRA群号”配置成PRA群0,PRA群0的BindGrp无需配置,并且以PRA群0来配置呼出路由或SIP中继的落地PRA群号。 3、只需要在“D通道”所在的数据记录上配置即可。 4、如此配置之后,呼叫会在绑定的这几个PRA群中自动选择空闲的呼出。 5、sho q9 call或sho q9 sta 的统计信息没有变化:按照实际呼出、呼入时所在的接口进行统计、显示。 E1接好后可以通过这个命令查看 EIS(config)#dev 40 1 E1[1][0]: useflag=1, state=1, crc4=0, alarm=0, linestate=0x0, errstate=0x0, loopstate=4 (TG配置了PRA数据)(E1的物理状态) EIS#sh mcc 0 ------------MCC global Informations----------------- HDLC mode is: ST_CO_64K. MCC Init Status = 1. MCC Init times = 1. MCC GOV FAIL times = 0. MCC GUN FAIL times = 0. MCC handle int times = 0. MCC handle int times = 0. MCC recv int circle table ptr= 1787. -----------------------END-------------------------- ------------MCC channel 0 Informations----------------- chan0 send frames num = 65833. chan0 recv frames num = 65786. 这两行数据会变就代表数据收发正常 如果chan0 send frames num 有数据 chan0 recv frames num 没有数据,就代表我们做了PRA数据,机房没做 chan0 send FAILED num = 0. chan0 recv FAILED num = 1. chan0 TX UN interrupt num = 0. chan0 RX MRF interrupt num = 0. chan0 RX BSY interrupt num = 0. chan0 RX CRC errors num = 0. chan0 RX AB errors num = 1. chan0 RX NO errors num = 0. chan0 RX LG errors num = 0. chan0 RX BUF errors num = 0. chan0 RX SS7 SUERM errors num = 0. chan0 RX SS7 AERM errors num = 0. -------------------channel 0 END----------------------- ------------channel 0 BDs Informations----------------- chan0 txBdBase = 0x1939004. chan0 txBdNum = 32. chan0 txBdPtr = 9. chan0 rxBdBase = 0x1939104. chan0 rxBdNum = 32. chan0 rxBdPtr = 27. ----------------channel 0 BDs END---------------------- 数据做好后检查链路是否建立 EIS#sh q931 call E1 = 8 COMPORT = 128 DATA LINK STATE = ESTB //数据链路状态正常,反则为 WAIT_ ESTB CURRENT CALL NUM = 0 MAX CALL NUM AT SAME TIME= 0 当查询PRA状态时,如果状态为“故障”,可以遵循以下步骤进行排查: A) 检查存在故障的PRA接口对应的E1与EIG连接是否正常 B) 检查接口数据配置是否有误(例如D通路配置错误,将非D通道的E1配置为D通道,导致EIG与电信交换机PRA接口建立失败); 图1-1 E1连接示意图 C) 检查E1是否存在交叉连接(俗称鸳鸯线),即两E1的收发同时存在交叉连接(例如E1A的收发接到E1B的收发上),或两E1的收发部分存在交叉连接(例如E1A的收连接正确,而发却连接到E1B的发) D) 检查PRA接口的数据格式类型是否与交换机侧一致(此为高级设置,如果出现此类问题,请与厂商联系); 主从TG配置说明 1、选定一台tg作为主tg 2、在pubparam里面配置87号参数为main insert PubParam (87,tg series flag: [normal,main,slave],main) 3、保存数据库,重启系统 4、主tg重启后,在sip中继表中配置到从tg的sip中继信息,每一个从tg到主tg都必须配置一条中继,参数加密,ip地址认证 Insert SipTrunk (11,ss-1,cechi,888888,xxx.xx.xx.xx,2080,1,0,65535,0,00:00:00,00:00:00,65535,65535,0,0,1,1,0,0,2,0,0) 5、配置7号trunkno,配置mtp信息 6、配置ss7pcm信息时注意,最后一个字段siptrunk,参数65535代表本地的e1,从tg的e1信息时,siptrunk为到从tg的sip中继号 insert Ss7Pcm (0,1,0,65535) insert Ss7Pcm (0,0,7,11) 如上和从TG的SIP编号是11,所以指向从TG的PCM后trunkno=11 7、呼叫选路时,把主tg的七号中继,从tg的sip中继都要作为一个路由,顺序可以先从tg,再主tg的7号,或者自定义 从tg配置: 1、建议加载空白数据库,避免残留数据 2、公共参数表里面配置87参数为slave insert PubParam (87,tg series flag: [normal,main,slave],slave) 3、公共参数表里面配置88参数为主tg上对应从tg的sip中继密码 insert PubParam (88,tg series main tg password: ,888888) 4、公共参数表里面配置89参数为主tg的ip地址 insert PubParam (89,tg series main tg ip: ,xxx.xxx.xxx.xxx) 5、保存数据,重启 PS: 从TG不用配置,数据都是从主TG自动生成过去的 可以通过sh tg的命令查看TG状态 以下是主从连上后的状态 主TG上 EIS#sh tg Current tg role : main NO. SipTrunk State AvailableTs Ip ------------------------------------------- 0 11 Reg 248 xxx.xxx.xxx.xxx 从TG上 EIS#sh tg Current tg role : slave Main Tg Ip :xx.xx.xx.xx Main Tg SipTrunk :1 Main Tg Password :888888 ------------------------------------------- Regiseter State :Registered Link State :Connect Main Tg Signal State :Connect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值