Author |
Message |
nakaok Brekeke Newbie
Joined: 15 Jun 2014 Posts: 2
Location: Japan
|
Posted: Sun Jun 15, 2014 1:06 am Post subject: "register.contact.remote" works correctly ? |
|
|
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
: |
|
Back to top |
|
james Brekeke Master Guru
Joined: 10 Dec 2007 Posts: 501
|
Posted: Mon Jun 16, 2014 10:14 am Post subject: |
|
|
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. |
|
Back to top |
|
lakeview Brekeke Master Guru
Joined: 15 Nov 2007 Posts: 319
Location: Florida
|
Posted: Mon Jun 16, 2014 11:05 am Post subject: |
|
|
Another way to fix the issue is ..
Add this in the [Configuration]->[Advanced] page.
Code: |
net.internal-addr.pattern = ^100 |
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. |
|
Back to top |
|
nakaok Brekeke Newbie
Joined: 15 Jun 2014 Posts: 2
Location: Japan
|
Posted: Tue Jun 17, 2014 11:05 am Post subject: |
|
|
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. |
|
Back to top |
|
lakeview Brekeke Master Guru
Joined: 15 Nov 2007 Posts: 319
Location: Florida
|
Posted: Tue Jun 17, 2014 4:25 pm Post subject: |
|
|
Brekeke's developer team will add new GUI filed to tune the variable "net.internal-addr.pattern" in a future release.
If so, an administrator doesn't have to set it manually.
Some internal API sets are available for OEM and tech partners. |
|
Back to top |
|
Laurie Brekeke Master Guru
Joined: 07 Jan 2008 Posts: 245
|
Posted: Wed Jul 09, 2014 11:47 am Post subject: |
|
|
RFC6598 defines that the Shared Address Space address range is 100.64.0.0/10.
It means 100.64.0.0 - 100.127.255.255.
Therefore the complete regex pattern will be:
net.internal-addr.pattern = ^100.6[4-9]|^100.[7-9][0-9]|^100.1[0-1][0-9]|^100.12[0-7] |
|
Back to top |
|
|