And here is the complete log of the issue with the GS Wave softphone (@10.33.31.66 internal IP - but using NAT - 900890099@sip.xxx.com.br):
- Registration
- Call from 900890000 (in the VPN) to 900890099 (NATted)
Please note:
In Wireshark I see a sequence of 6 INVITE, going to the public IP but trying to talk to the private IP:
529 10.33.30.12 179.55.81.134 SIP/SDP 1401 Request: INVITE sip:900890099@10.33.31.66:5180 |
- Internet Protocol Version 4, Src: 10.33.30.12, Dst: 179.55.81.134
- INVITE sip:900890099@10.33.31.66:5180 SIP/2.0
register.14: processing: rule=register
register.14: recv: at 05/12/20 22:07:02.811
==============================================
REGISTER sip:sip.xxx.com.br SIP/2.0
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK1225455834;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2000 REGISTER
Contact: <sip:900890099@10.33.31.66:5180>;expires=0
Max-Forwards: 70
User-Agent: Grandstream Wave 1.0.3.34
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
P-Behind-NAT: Yes
Content-Length: 0
==============================================
register.14: target=local
register.14: local: failed: send response=401 policy:[realm=sip.xxx.com.br policy=6]
register.14: local: send: challenge: at 05/12/20 22:07:02.812
==============================================
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK1225455834;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>;tag=b9a6adb0bs
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2000 REGISTER
Server: Brekeke SIP Server rev.517-9
WWW-Authenticate: Digest realm="sip.xxx.com.br",nonce="693f704102b2905773086494221ea165225ef6e6",algorithm=MD5
Content-Length: 0
==============================================
register.14: local: recv re-request: at 05/12/20 22:07:02.858
==============================================
REGISTER sip:sip.xxx.com.br SIP/2.0
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK318215825;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2001 REGISTER
Contact: <sip:900890099@10.33.31.66:5180>;expires=0
Authorization: Digest username="900890099", realm="sip.xxx.com.br", nonce="693f704102b2905773086494221ea165225ef6e6", uri="sip:sip.xxx.com.br", response="0b9b3e3f3d3c55f2cba2d53a265c2a90", algorithm=MD5
Max-Forwards: 70
User-Agent: Grandstream Wave 1.0.3.34
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
P-Behind-NAT: Yes
Content-Length: 0
==============================================
registrar: lookuped: 'sip:900890099' is not found.
registrar: deleted: 'sip:900890099' as 'sip:900890099@10.33.31.66:5180 at 179.55.81.134:5180(UDP/NAT)' (41)
register.14: succeed: send: at 05/12/20 22:07:02.861
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK318215825;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>;tag=bd8cb1528s
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2001 REGISTER
Server: Brekeke SIP Server rev.517-9
Expires: 0
Date: Wed, 13 May 2020 01:07:02 GMT
Path: <sip:200.139.100.200:5060;lr>
Content-Length: 0
==============================================
register.14: close: at 05/12/20 22:07:02.862
management.14: close: register: from=sip:900890099@sip.xxx.com.br at 05/12/20 22:07:02.862
============================================
PreCheck [BloqueioUserAgent]
Pattern: $str.lowercase(User-Agent) = friendly-scanner|sundayddr|sipcli/v1.8|linphone/3.7.0 (belle-sip/1.3.0)
Input: $str.lowercase(User-Agent) = grandstream wave 1.0.3.34
Result: false
============================================
============================================
Rule@1 [register]
Pattern: $request = ^REGISTER
Input: $request = REGISTER sip:sip.xxx.com.br SIP/2.0
Result: true
============================================
register.15: processing: rule=register
register.15: recv: at 05/12/20 22:07:02.919
==============================================
REGISTER sip:sip.xxx.com.br SIP/2.0
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK784324631;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2002 REGISTER
Contact: <sip:900890099@10.33.31.66:5180>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000B82204036>"
Authorization: Digest username="900890099", realm="sip.xxx.com.br", nonce="693f704102b2905773086494221ea165225ef6e6", uri="sip:sip.xxx.com.br", response="0b9b3e3f3d3c55f2cba2d53a265c2a90", algorithm=MD5
Max-Forwards: 70
User-Agent: Grandstream Wave 1.0.3.34
Supported: path
Expires: 60
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
P-Behind-NAT: Yes
Content-Length: 0
==============================================
register.15: target=local
registrar: registered(60): 'sip:900890099' as 'sip:900890099@10.33.31.66:5180 at 179.55.81.134:5180(UDP/NAT)' (43)
register.15: succeed: send: at 05/12/20 22:07:02.924
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK784324631;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>;tag=bbfef3dbas
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2002 REGISTER
Server: Brekeke SIP Server rev.517-9
Contact: <sip:900890099@10.33.31.66:5180>;expires=60;q=1.0;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000B82204036>"
Expires: 60
Date: Wed, 13 May 2020 01:07:02 GMT
Path: <sip:200.139.100.200:5060;lr>
Supported: path
Content-Length: 0
==============================================
register.15: close: at 05/12/20 22:07:02.924
management.15: close: register: from=sip:900890099@sip.xxx.com.br at 05/12/20 22:07:02.924
============================================
PreCheck [BloqueioUserAgent]
Pattern: $str.lowercase(User-Agent) = friendly-scanner|sundayddr|sipcli/v1.8|linphone/3.7.0 (belle-sip/1.3.0)
Input: $str.lowercase(User-Agent) =
Result: false
============================================
============================================
Rule@1 [Ramais Connect]
Pattern: $request = ^INVITE
Input: $request = INVITE sip:890099@10.33.30.12;user=phone SIP/2.0
Result: true
Pattern: To = sip:8900(..)@
Input: To = <sip:890099@10.33.30.12;user=phone>
%1 <= 99
Result: true
Pattern: From = sip:9008900(..)@
Input: From = "Connect" <sip:900890000@10.33.30.12>;tag=o520i3wi94
%2 <= 00
Result: true
============================================
registrar: lookuped: 'sip:900890099' as 'sip:900890099@10.33.31.66:5180' (43)
session.18: sipex.17: start: from=<sip:900890000@10.33.30.12> to=<sip:900890099@200.139.100.200>
session.18: information:
starttime = 05/12/20 22:07:12.743
timestamps = 05/12/20 22:07:12.612 (1) 05/12/20 22:07:12.613 (7) 05/12/20 22:07:12.620
spiral-hop = 1
dispatcher-id = 1
plugin = com.brekeke.net.sip.sv.session.plugins.InviteSession
request = INVITE sip:890099@10.33.30.12;user=phone SIP/2.0
rulename = registered=sip:900890099(sip:900890099@10.33.31.66:5180/UDP) & Ramais Connect
org:From: = sip:900890000@10.33.30.12
new:From: = sip:890000@
org:To: = sip:890099@10.33.30.12
new:To: = sip:900890099@200.139.100.200
src:addr/port = 10.33.31.106:5060 (UDP local-addr)
src:interface = 10.33.30.12:5060 (UDP local-addr)
dst:addr/port = 179.55.81.134:5180 (UDP global-addr)
dst:interface = 200.139.100.200:5060 (UDP global-addr)
uas:user-agent= Grandstream Wave 1.0.3.34
Mirroring = off
mode:B2BUA = off
mode:RTPrelay = auto
mode:Auth = off (user-required)
mode:NAT = on { Near-End-NAT Dst-Far-End-NAT }
session.18: phase=0: Initializing
session.18: System Used Memory = 9744
session.18: receive: from=UAC:10.33.31.106:5060(UDP) at 05/12/20 22:07:12.749
==============================================
INVITE sip:890099@10.33.30.12;user=phone SIP/2.0
Via: SIP/2.0/UDP 10.33.31.106:5060;branch=z9hG4bK-n02ogowa8ejm;rport=5060
From: "Connect" <sip:900890000@10.33.30.12>;tag=o520i3wi94
To: <sip:890099@10.33.30.12;user=phone>
Call-ID: 3135383933333230333236363936-gqmb4fei403s
CSeq: 1 INVITE
Max-Forwards: 70
Contact: <sip:900890000@10.33.31.106:5060;line=mig21oq4>;reg-id=1
X-Serialnumber: 00041346028A
P-Key-Flags: resolution="31x13", keys="4"
Accept: application/sdp
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE, INFO, UPDATE
Allow-Events: talk, hold, refer, call-info
Supported: timer, 100rel, replaces, from-change
Session-Expires: 3600
Min-SE: 90
Content-Type: application/sdp
Content-Length: 462
v=0
o=root 470841170 470841170 IN IP4 10.33.31.106
s=call
c=IN IP4 10.33.31.106
t=0 0
m=audio 56182 RTP/AVP 9 0 8 99 112 18 101
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:J9Xk2CHElFo7IUd6ZHBVHMWoHgk+MPBmTK5l0HI4
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:99 G726-32/8000
a=rtpmap:112 AAL2-G726-32/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
==============================================
rtp.35000: start: media=audio port=35000 (IPv4)
rtp.35000: target=10.33.31.106:56182
session.18: RTPparam: IN=0 OUT=0
session.18: content-type=application/sdp plugin=com.brekeke.net.content.application.Sdp
session.18: pkt#=1 dp=1 st=0 sip:900890000@10.33.30.12(10.33.31.106:5060) --> sip:900890099@200.139.100.200(179.55.81.134:5180)
send="INVITE sip:900890099@10.33.31.66:5180 SIP/2.0"
session.18: phase=1: Inviting
session.18: processtime=145
session.18: send: to=UAS:179.55.81.134:5180(UDP) at 05/12/20 22:07:12.758
==============================================
INVITE sip:900890099@10.33.31.66:5180 SIP/2.0
Via: SIP/2.0/UDP 200.139.100.200:5060;branch=z9hG4bK3de5d1b7cbae-30-18b2c2
Via: SIP/2.0/UDP 10.33.31.106:5060;branch=z9hG4bK-n02ogowa8ejm;rport=5060
From: "Connect" <sip:890000@>;tag=o520i3wi94
To: <sip:900890099@200.139.100.200;user=phone>
Call-ID: 3135383933333230333236363936-gqmb4fei403s
CSeq: 1 INVITE
Max-Forwards: 69
Contact: <sip:900890000@200.139.100.200:5060;line=mig21oq4>;reg-id=1
X-Serialnumber: 00041346028A
P-Key-Flags: resolution="31x13", keys="4"
Accept: application/sdp
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, MESSAGE, INFO, UPDATE
Allow-Events: talk, hold, refer, call-info
Supported: timer, 100rel, replaces, from-change
Session-Expires: 3600
Min-SE: 90
Record-Route: <sip:200.139.100.200:5060;ftag=o520i3wi94;lr>
Content-Type: application/sdp
Content-Length: 468
v=0
o=root 470841170 470841170 IN IP4 200.139.100.200
s=call
c=IN IP4 200.139.100.200
t=0 0
m=audio 35000 RTP/AVP 9 0 8 99 112 18 101
a=crypto:1 AES_CM_128_HMAC_SHA1_32 inline:J9Xk2CHElFo7IUd6ZHBVHMWoHgk+MPBmTK5l0HI4
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:99 G726-32/8000
a=rtpmap:112 AAL2-G726-32/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=ptime:20
a=sendrecv
==============================================
session.18: stat: result=undefined(6) close=false
> +--------------+--------------+--------------+--------------+
> | 1 INVITE | | 1 INVITE | |
> +--------------+--------------+--------------+--------------+
> 1/1 0/0 1/1 0/0
> ResendStat: INVITE(1),
============================================
PreCheck [BloqueioUserAgent]
Pattern: $str.lowercase(User-Agent) = friendly-scanner|sundayddr|sipcli/v1.8|linphone/3.7.0 (belle-sip/1.3.0)
Input: $str.lowercase(User-Agent) = grandstream wave 1.0.3.34
Result: false
============================================
============================================
Rule@1 [register]
Pattern: $request = ^REGISTER
Input: $request = REGISTER sip:sip.xxx.com.br SIP/2.0
Result: true
============================================
register.16: processing: rule=register
register.16: recv: at 05/12/20 22:07:33.032
==============================================
REGISTER sip:sip.xxx.com.br SIP/2.0
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK1463155263;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2003 REGISTER
Contact: <sip:900890099@10.33.31.66:5180>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000B82204036>"
Authorization: Digest username="900890099", realm="sip.xxx.com.br", nonce="693f704102b2905773086494221ea165225ef6e6", uri="sip:sip.xxx.com.br", response="0b9b3e3f3d3c55f2cba2d53a265c2a90", algorithm=MD5
Max-Forwards: 70
User-Agent: Grandstream Wave 1.0.3.34
Supported: path
Expires: 60
Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, UPDATE, MESSAGE
P-Behind-NAT: Yes
Content-Length: 0
==============================================
register.16: target=local
registrar: registered(60): 'sip:900890099' as 'sip:900890099@10.33.31.66:5180 at 179.55.81.134:5180(UDP/NAT)' (46)
register.16: succeed: send: at 05/12/20 22:07:33.081
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.33.31.66:5180;branch=z9hG4bK1463155263;rport=5180;received=179.55.81.134
From: <sip:900890099@sip.xxx.com.br>;tag=321082301
To: <sip:900890099@sip.xxx.com.br>;tag=b7303f4c3s
Call-ID: 701694228-5180-1@BA.DD.DB.GG
CSeq: 2003 REGISTER
Server: Brekeke SIP Server rev.517-9
Contact: <sip:900890099@10.33.31.66:5180>;expires=60;q=1.0;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000B82204036>"
Expires: 60
Date: Wed, 13 May 2020 01:07:33 GMT
Path: <sip:200.139.100.200:5060;lr>
Supported: path
Content-Length: 0
==============================================
register.16: close: at 05/12/20 22:07:33.081
management.16: close: register: from=sip:900890099@sip.xxx.com.br at 05/12/20 22:07:33.081
session.18: receive: from=UAC:10.33.31.106:5060(UDP) at 05/12/20 22:07:42.930
==============================================
CANCEL sip:890099@10.33.30.12;user=phone SIP/2.0
Via: SIP/2.0/UDP 10.33.31.106:5060;branch=z9hG4bK-n02ogowa8ejm;rport=5060
From: "Connect" <sip:900890000@10.33.30.12>;tag=o520i3wi94
To: <sip:890099@10.33.30.12;user=phone>
Call-ID: 3135383933333230333236363936-gqmb4fei403s
CSeq: 1 CANCEL
Max-Forwards: 70
Reason: SIP;cause=487;text="Request terminated by user"
Content-Length: 0
==============================================
session.18: pkt#=2 dp=1 st=0 sip:900890000@10.33.30.12(10.33.31.106:5060) --> sip:900890099@200.139.100.200(179.55.81.134:5180)
send="CANCEL sip:900890099@10.33.31.66:5180 SIP/2.0"
session.18: send: to=UAC:10.33.31.106:5060(UDP) at 05/12/20 22:07:42.932
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.33.31.106:5060;branch=z9hG4bK-n02ogowa8ejm;rport=5060
From: "Connect" <sip:900890000@10.33.30.12>;tag=o520i3wi94
To: <sip:890099@10.33.30.12;user=phone>;tag=bd3b7a61cs
Call-ID: 3135383933333230333236363936-gqmb4fei403s
CSeq: 1 CANCEL
Server: Brekeke SIP Server rev.517-9
Content-Length: 0
==============================================
session.18: phase=6: Closing
session.18: send: to=UAC:10.33.31.106:5060(UDP) at 05/12/20 22:07:42.932
==============================================
SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP 10.33.31.106:5060;branch=z9hG4bK-n02ogowa8ejm;rport=5060
From: "Connect" <sip:900890000@10.33.30.12>;tag=o520i3wi94
To: <sip:890099@10.33.30.12;user=phone>;tag=baf3ecf2bs
Call-ID: 3135383933333230333236363936-gqmb4fei403s
CSeq: 1 INVITE
Server: Brekeke SIP Server rev.517-9
Content-Length: 0
==============================================
session.18: status: Zombie at Closing
session.18: stat: result=Cancel(2) close=false
> +--------------+--------------+--------------+--------------+
> | | 487 | 1 INVITE | |
> +--------------+--------------+--------------+--------------+
> 0/0 0/0 1/1 0/0
> ResendStat: 487-INVITE(1),
session.18: receive: from=UAC:10.33.31.106:5060(UDP) at 05/12/20 22:07:43.087
==============================================
ACK sip:890099@10.33.30.12;user=phone SIP/2.0
Via: SIP/2.0/UDP 10.33.31.106:5060;branch=z9hG4bK-n02ogowa8ejm;rport=5060
From: "Connect" <sip:900890000@10.33.30.12>;tag=o520i3wi94
To: <sip:890099@10.33.30.12;user=phone>;tag=baf3ecf2bs
Call-ID: 3135383933333230333236363936-gqmb4fei403s
CSeq: 1 ACK
Max-Forwards: 70
Contact: <sip:900890000@10.33.31.106:5060;line=mig21oq4>;reg-id=1
Content-Length: 0
==============================================
session.18: pkt#=3 dp=1 st=0 sip:900890000@10.33.30.12(10.33.31.106:5060) --> sip:900890099@200.139.100.200(179.55.81.134:5180)
send="ACK sip:900890099@10.33.31.66:5180 SIP/2.0"
session.18: Accept ACK and doesn't forward it
session.18: stat: result=Cancel(2) close=false ( wait-retry )
> +--------------+--------------+--------------+--------------+
> | | | 1 INVITE | |
> +--------------+--------------+--------------+--------------+
> 0/0 0/0 1/1 0/0
The issue is at the registration, which makes BSS during INVITE send the packets to the right IP address but with the wrong IP in the header
And the real problem is that this happens only to GS Wave, so I can't create a rule just for this phone, as I don't know which users will use it.