U1960通过防火墙进行NAT穿越,和PSTN的SoftX3000实现SIP中继对接,出局呼叫和入局呼叫都失败

发布时间:  2015-12-10 浏览次数:  2237 下载次数:  0
问题描述

U1960 放置在客户内网中,连接到核心交换机,通过防火墙进行NAT 穿越后,和PSTN SoftX3000 实现SIP 中继对接,出局呼叫和入局呼叫都失败。

处理过程

1、U1960上检查SIP中继配置信息,在 U1960上配置了SIP中继到PSTNU1960 上配置的地址是PSTN侧提供的公网地址10.208.26.20,同时 U1960 侧开启中继心跳开关,配置完成后,U1960 侧显示中继状态为 Outservice,中继状态不正常;

 

2、 U1960 上层核心交换机上抓包,能抓到 U1960 发送出去 option 消息包,但是抓不到对方回复的 200 OK 消息;

 



 

3、在防火墙侧进行抓包,能够抓取到 U1960 侧发来的包,和 PSTN SBC 回复的网络包,但是防火墙没有将 PSTN 侧回复的包,进行NAT后转发给U1960,导致中继异常,防火墙侧更改配置后,中继状态恢复。

 

4、现场进行出局和入局拨测,出局呼叫时,PSTN SBC 一直回复 4XX 400403480)消息,导致呼叫失败,在防火墙出入口侧抓包,确定防火墙侧已经对内网和公网进行了映射;



INVITE sip:0993667978@10.208.66.74:16208;user=phone SIP/2.0
Via: SIP/2.0/UDP 10.208.66.74:5060;branch=z9hG4bKlmgf9j8b3883fxolxxmeg6gef
Call-ID: 9i9jb8elei8oi9b3ofh86b5b3xgjf35g@192.168.100.2
From: "HR Assistant"<sip:23934440@10.208.66.74;user=phone>;tag=x3gxe88x
To: 0993667978 <sip:0993667978@
10.208.66.74:16208;user=phone>
CSeq: 1 INVITE
Contact: <sip:23934440@10.208.66.74:5060;user=phone>;CallLocation=EXTERNAL
Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,UPDATE,REFER,PUBLISH
Alert-Info: <
http://www.huawei.com/alert.wav>;info=alert-internal
Supported: 100rel
Max-Forwards: 70
Content-Length: 447
Content-Type: application/sdp

v=0
o=HuaweieSpaceV100R001C20SPC500 15 15 IN IP4 10.208.66.74
s=Sip Call
c=IN IP4
10.208.66.74
t=0 0
m=audio 16210 RTP/AVP 8 0 18 97 9 98 101
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:18 G729/8000
a=rtpmap:97 iLBC/8000
a=rtpmap:9 G722/8000
a=rtpmap:98 MP4A-LATM/48000
a=ptime:20
a=rtpmap:101 telephone-event/8000
a=fmtp:98 bitrate=96000;profile-level-id=24;object=0
a=fmtp:101 0-15
a=fmtp:18 annexb=no
a=fmtp:97 mode=30


防火墙侧抓包显示,经过防火墙 NAT 以后,INVITE 消息中的地址和端口,都已经进行了映射

内网 192.168.100.2 ------- 映射 -------- 公网 10.208.66.74

但是 INVITE sip:0993667978@10.208.66.74:16208 中的端口号不是 5060,而是 16208,怀疑是这个原因导致对方回复 403 消息。

SIP/2.0 403 Forbidden
Via: SIP/2.0/UDP 10.208.66.74:5060;branch=z9hG4bKlmgf9j8b3883fxolxxmeg6gef
Call-ID: 9i9jb8elei8oi9b3ofh86b5b3xgjf35g@192.168.100.2
From: "HR Assistant"<sip:23934440@10.208.66.74;user=phone>;tag=x3gxe88x
To: 0993667978 <sip:0993667978@10.208.66.74:16208;user=phone>;tag=lutclgwr
CSeq: 1 INVITE
Reason: Q.850;cause=21;text="call rejected"
Warning: 399 - "SoftX3000 R601-CCU Rel POS:[3103] Release from CR"
Content-Length: 0


 

5、协调防火墙侧研发更改防火墙侧配置,将该端口号修改为 5060,但是发现 INVITE 消息里面的其他地址全部携带为内网的 192.168.100.2 了:

 

INVITE sip:0993667978@10.208.26.20:5060;user=phone SIP/2.0

Via: SIP/2.0/UDP 10.208.66.74:5060;branch=z9hG4bKmm9g6eeg5eo9o55g3o63loefi

Call-ID: mxi8x66xfiebj99e5bexxligbiih9h99@192.168.100.2

From: "HR Assistant"<sip:23934440@10.208.66.74;user=phone>;tag=596egxgh

To: 0993667978 <sip:0993667978@10.208.26.20;user=phone>

CSeq: 1 INVITE

Contact: <sip:23934440@10.208.66.74:5060;user=phone>;CallLocation=EXTERNAL

Allow: INVITE,ACK,OPTIONS,BYE,CANCEL,REGISTER,INFO,PRACK,SUBSCRIBE,NOTIFY,UPDATE,REFER,PUBLISH

Alert-Info: <http://www.huawei.com/alert.wav>;info=alert-internal

Supported: 100rel

Max-Forwards: 70

Content-Length: 450

Content-Type: application/sdp

 

v=0

o=HuaweieSpaceV100R001C20SPC500 14 14 IN IP4 10.208.66.74

s=Sip Call

c=IN IP4 192.168.100.146

t=0 0

m=audio 10086 RTP/AVP 8 0 18 97 9 98 101

a=rtpmap:8 PCMA/8000

a=rtpmap:0 PCMU/8000

a=rtpmap:18 G729/8000

a=rtpmap:97 iLBC/8000

a=rtpmap:9 G722/8000

a=rtpmap:98 MP4A-LATM/48000

a=ptime:20

a=rtpmap:101 telephone-event/8000

a=fmtp:98 bitrate=96000;profile-level-id=24;object=0

a=fmtp:101 0-15

a=fmtp:18 annexb=no

a=fmtp:97 mode=30

 

SIP/2.0 403 Forbidden

Via: SIP/2.0/UDP 10.208.66.74:5060;branch=z9hG4bKmm9g6eeg5eo9o55g3o63loefi

Call-ID: mxi8x66xfiebj99e5bexxligbiih9h99@192.168.100.2

From: "HR Assistant"<sip:23934440@10.208.66.74;user=phone>;tag=596egxgh

To: 0993667978 <sip:0993667978@10.208.26.20;user=phone>;tag=xtljeuls

CSeq: 1 INVITE

Reason: Q.850;cause=21;text="call rejected"

Warning: 399 - "SoftX3000 R601-CCU Rel POS:[3103] Release from CR"

Content-Length: 0


防火墙修改后还是不行,后要求防火墙还原到以前的配置,防火墙侧开启SIPALG功能。

 

6、协调一线拉运营商一起分析,对方确定U1960送主叫号码的时候,需要在真实的号码全面前插1001,当前U1960是直接送号码到 SoftX3000 侧,导致对方回复4 XX消息,在U1960侧修改字冠属性后,再次测试,问题解决。

根因

1、 防火墙一开始没有将PSTN侧回复的200 OK 消息转达给U1960,导致U1960收不到SIP中继的心跳回复,SIP中继状态异常,出局呼叫异常;
 

2、SIP中继状态正常后,出局呼叫还是失败,原因是由于SoftX3000 一直拒绝U1960的呼叫请求,是由于U1960携带的被叫号码不符合SoftX3000的号码规则要求。

解决方案
步骤 1  防火墙侧更改配置,需要将PSTN侧的消息,经过NAT后,转发给内部网络的U1960设备;

步骤 2   U1960侧增加号码变换,在被叫号码前,全部前插1001

        config add predeal index 0 changetype insert changepos 0 newdn 1001

            ----结束

END