1. Brekeke Product Name and Version:
Brekeke SIP Server , Version 3.3.4.4 Standard
2. Java version:
1.7.0_45
3. OS type and the version:
Windows Server 2008 R2
4. UA (phone), gateway or other hardware/software involved:
IMSDroid custom (Android)
5. Your problem:
One Japanese mobile carrier is using "100.xx.xx.xx" addresses as "private IP".
Unfortunately, at Brekeke default setting, "100.xx.xx.xx" is recognized as "global IP"...
So, I wrote dial plan "register.contact.remote".
INVITE/Ringing are sent to UAS source(NAPT) IP correctly, but PRACK and ACK
is sent to UAS private IP, and there are cannot reached for UAS.
(Finally the error occurs on the client.)
I'm at a loss what to do. How can I solve this ?
Please see a session log, and give me suggestions...
Thanks
Environment
==============================================
Brekeke SIP Server: 113.32.xx.xx
UAC
Contact URI: sip:yoko@10.79.xx.xx (Mobile phone private IP...base on RFC1918)
Source IP: 1.78.xx.xx (Mobile carrier NAPT IP)
UAS
Contact URI: sip:john@100.88.xx.xx (Mobile phone private IP...not RFC1918 ?)
Source IP: 49.98.xx.xx (Mobile carrier NAPT IP)
Dial Plan
Matching Patterns:
-----------------------
$request = ^REGISTER
-----------------------
Deploy Patterns:
-----------------------
®ister.contact.remote = true
®ister.contact.nat = true
$continue = true
-----------------------
Session Log
==============================================
session.88: information:
starttime = 06/15/14 00:10:43.457
spiral-hop = 1
plugin = jp.co.cosmosplus.brekeke.plugins.AccountingPlugin
request = INVITE sip:john@113.32.xx.xx SIP/2.0
rulename = registered=sip:john(sip:john@100.88.xx.xx:50540/UDP)
org:From: = sip:yoko@113.32.xx.xx
new:From: = sip:yoko@113.32.xx.xx
org:To: = sip:john@113.32.xx.xx
new:To: = sip:john@113.32.xx.xx
src:addr/port = 1.78.xx.xx:52341 (UDP global-addr)
src:interface = 113.32.xx.xx:5060 (UDP global-addr)
dst:addr/port = 49.98.xx.xx:50540 (UDP global-addr)<====== GOOD: NAPT IP
dst:interface = 113.32.xx.xx:5060 (UDP global-addr)
uac:user-agent= xxxx/1.1.1 SC-02C
uas:user-agent= xxxx/1.1.1 SO-01E
mode:B2BUA = on
mode:RTPrelay = off (user-required)
mode:Auth = auto
mode:NAT = on { Src-Far-End-NAT Dst-Far-End-NAT }
:
session.88: receive: from=UAC:1.78.xx.xx:52341(UDP)
==============================================
INVITE sip:john@113.32.xx.xx SIP/2.0
Via: SIP/2.0/UDP 10.79.xx.xx:52341;....
From: <sip:yoko@113.32.xx.xx>;tag=214775390
To: <sip:john@113.32.xx.xx>
Contact: <sip:yoko@10.79.xx.xx:52341;....
Call-ID: 5bce2523-8dcc-22f9-0117-73d38ac39fea
CSeq: 16699550 INVITE
:
v=0
o=doubango 1983 678901 IN IP4 10.79.xx.xx
s=-
c=IN IP4 10.79.xx.xx
t=0 0
a=tcap:1 RTP/AVPF
m=audio 35232 RTP/AVP 9 8 0
c=IN IP4 10.79.xx.xx
:
session.88: send: to=UAS:49.98.xx.xx:50540(UDP) <====== GOOD: NAPT IP
==============================================
INVITE sip:john@100.88.xx.xx:50540;transport=udp SIP/2.0
Via: SIP/2.0/UDP 113.32.xx.xx:5060;....
From: <sip:yoko@113.32.xx.xx>;tag=b188543e6s
To: <sip:john@113.32.xx.xx>
Contact: <sip:yoko@113.32.xx.xx:5060>;....
Call-ID: 3677e588-5f1b5250-42fc4de0-693d7afe
CSeq: 16699550 INVITE
:
v=0
o=doubango 1983 678901 IN IP4 113.32.xx.xx
s=-
c=IN IP4 1.78.xx.xx
t=0 0
a=tcap:1 RTP/AVPF
m=audio 35232 RTP/AVP 9 8 0
c=IN IP4 1.78.xx.xx
:
session.88: receive: from=UAS:49.98.xx.xx:50540(UDP)
==============================================
SIP/2.0 100 Trying (sent from the Transaction Layer)
Via: SIP/2.0/UDP 113.32.xx.xx:5060;....
From: <sip:yoko@113.32.xx.xx>;tag=b188543e6s
To: <sip:john@113.32.xx.xx>
Call-ID: 3677e588-5f1b5250-42fc4de0-693d7afe
CSeq: 16699550 INVITE
Content-Length: 0
:
session.88: receive: from=UAS:49.98.xx.xx:50540(UDP) <====== GOOD: NAPT IP
==============================================
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 113.32.xx.xx:5060;....
From: <sip:yoko@113.32.xx.xx>;tag=b188543e6s
To: <sip:john@113.32.xx.xx>;tag=286305718
Contact: <sip:john@100.88.xx.xx:50540;transport=udp>
Call-ID: 3677e588-5f1b5250-42fc4de0-693d7afe
CSeq: 16699550 INVITE
Require: 100rel
:
session.88: send: to=UAC:1.78.xx.xx:52341(UDP)
==============================================
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 10.79.xx.xx:52341;....
From: <sip:yoko@113.32.xx.xx>;tag=214775390
To: <sip:john@113.32.xx.xx>;tag=bd9d40ee9s
Contact: <sip:john@113.32.xx.xx:5060>
Call-ID: 5bce2523-8dcc-22f9-0117-73d38ac39fea
CSeq: 16699550 INVITE
Require: 100rel
:
session.88: receive: from=UAC:1.78.xx.xx:52341(UDP)
==============================================
PRACK sip:john@113.32.xx.xx:5060 SIP/2.0
Via: SIP/2.0/UDP 10.79.xx.xx:52341;....
From: <sip:yoko@113.32.xx.xx>;tag=214775390
To: <sip:john@113.32.xx.xx>;tag=bd9d40ee9s
Contact: <sip:yoko@10.79.xx.xx:52341;....
Call-ID: 5bce2523-8dcc-22f9-0117-73d38ac39fea
CSeq: 16699551 PRACK
:
session.88: send: to=UAS:100.88.xx.xx:50540(UDP)<====== BAD: Private IP
==============================================
PRACK sip:john@100.88.xx.xx:50540;transport=udp SIP/2.0
Via: SIP/2.0/UDP 113.32.xx.xx:5060;....
From: <sip:yoko@113.32.xx.xx>;tag=b188543e6s
To: <sip:john@113.32.xx.xx>;tag=286305718
Contact: <sip:yoko@113.32.xx.xx:5060>;....
Call-ID: 3677e588-5f1b5250-42fc4de0-693d7afe
CSeq: 16699551 PRACK
:
:
:
session.88: receive: from=UAS:49.98.xx.xx:50540(UDP)
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 113.32.xx.xx:5060;....
From: <sip:yoko@113.32.xx.xx>;tag=b188543e6s
To: <sip:john@113.32.xx.xx>;tag=286305718
Contact: <sip:john@100.88.xx.xx:50540;transport=udp>
Call-ID: 3677e588-5f1b5250-42fc4de0-693d7afe
CSeq: 16699550 INVITE
:
v=0
o=doubango 1983 678901 IN IP4 100.88.xx.xx
s=-
c=IN IP4 100.88.xx.xx
t=0 0
m=audio 49410 RTP/AVPF 8 0
:
session.88: send: to=UAC:1.78.xx.xx:52341(UDP)
==============================================
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.79.xx.xx:52341;....
From: <sip:yoko@113.32.xx.xx>;tag=214775390
To: <sip:john@113.32.xx.xx>;tag=bd9d40ee9s
Contact: <sip:john@113.32.xx.xx:5060>
Call-ID: 5bce2523-8dcc-22f9-0117-73d38ac39fea
CSeq: 16699550 INVITE
:
v=0
o=doubango 1983 678901 IN IP4 113.32.xx.xx
s=-
c=IN IP4 100.88.xx.xx<====== BAD: Private IP
t=0 0
m=audio 49410 RTP/AVPF 8 0
:
session.88: receive: from=UAC:1.78.xx.xx:52341(UDP)
==============================================
ACK sip:john@113.32.xx.xx:5060 SIP/2.0
Via: SIP/2.0/UDP 10.79.xx.xx:52341;....
From: <sip:yoko@113.32.xx.xx>;tag=214775390
To: <sip:john@113.32.xx.xx>;tag=bd9d40ee9s
Contact: <sip:yoko@10.79.xx.xx:52341;...
Call-ID: 5bce2523-8dcc-22f9-0117-73d38ac39fea
CSeq: 16699550 ACK
:
session.88: send: to=UAS:100.88.xx.xx:50540(UDP)<====== BAD: Private IP
==============================================
ACK sip:john@100.88.xx.xx:50540;transport=udp SIP/2.0
Via: SIP/2.0/UDP 113.32.xx.xx:5060;....
From: <sip:yoko@113.32.xx.xx>;tag=b188543e6s
To: <sip:john@113.32.xx.xx>;tag=286305718
Contact: <sip:yoko@113.32.xx.xx:5060>;...
Call-ID: 3677e588-5f1b5250-42fc4de0-693d7afe
CSeq: 16699550 ACK
:
"register.contact.remote" works correctly ?
Moderator: Brekeke Support Team
This is because 100.88.xx.xx is not a private IP address, and the UAS's "180 Rining" indicated "100.88.xx.xx" in the Contact header.
To keep using the same destination IP address/port for UAS (even if 180 pointed unique IP address/port), let you put the following line in the Deploy Pattern for INVITE.
&net.sip.fixed.addrport.uas = true
Or, you can put the following line in the [Configuration]->[Advanced] page.
net.sip.fixed.addrport.uas = true
Good luck.
To keep using the same destination IP address/port for UAS (even if 180 pointed unique IP address/port), let you put the following line in the Deploy Pattern for INVITE.
&net.sip.fixed.addrport.uas = true
Or, you can put the following line in the [Configuration]->[Advanced] page.
net.sip.fixed.addrport.uas = true
Good luck.
Another way to fix the issue is ..
Add this in the [Configuration]->[Advanced] page.
Brekeke SIP Server will treat 100.x.x.x as an internal (private) IP address.
so you don't need any DialPlan rule for REGISTER and you don't need "net.sip.fixed.addrport.uas" too.
Add this in the [Configuration]->[Advanced] page.
Code: Select all
net.internal-addr.pattern = ^100
so you don't need any DialPlan rule for REGISTER and you don't need "net.sip.fixed.addrport.uas" too.
Great! This is just what I have been looking for!
I will test as soon as possible.
(Actually, I cannot test all by myself because "100.X.X.X" is not assigned in my town(Tokyo)... )
Let me ask another question.
Where can I find reference of advance settings like "net.internal-addr.pattern" ?
(There is a few items in document and wiki...)
Thank you so much.
I will test as soon as possible.
(Actually, I cannot test all by myself because "100.X.X.X" is not assigned in my town(Tokyo)... )
Let me ask another question.
Where can I find reference of advance settings like "net.internal-addr.pattern" ?
(There is a few items in document and wiki...)
Thank you so much.