Brekeke Forum Index » Brekeke SIP Server Forum

Post new topic   Reply to topic
"register.contact.remote" works correctly ?
Author Message
nakaok
Brekeke Newbie


Joined: 15 Jun 2014
Posts: 2
Location: Japan

PostPosted: Sun Jun 15, 2014 1:06 am    Post subject: "register.contact.remote" works correctly ? Reply with quote

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:
-----------------------
&register.contact.remote = true
&register.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
View user's profile
james
Brekeke Master Guru


Joined: 10 Dec 2007
Posts: 494

PostPosted: Mon Jun 16, 2014 10:14 am    Post subject: Reply with quote

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
View user's profile
lakeview
Brekeke Master Guru


Joined: 15 Nov 2007
Posts: 319
Location: Florida

PostPosted: Mon Jun 16, 2014 11:05 am    Post subject: Reply with quote

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
View user's profile
nakaok
Brekeke Newbie


Joined: 15 Jun 2014
Posts: 2
Location: Japan

PostPosted: Tue Jun 17, 2014 11:05 am    Post subject: Reply with quote

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)... Crying or Very sad )

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. Very Happy
Back to top
View user's profile
lakeview
Brekeke Master Guru


Joined: 15 Nov 2007
Posts: 319
Location: Florida

PostPosted: Tue Jun 17, 2014 4:25 pm    Post subject: Reply with quote

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
View user's profile
Laurie
Brekeke Master Guru


Joined: 07 Jan 2008
Posts: 242

PostPosted: Wed Jul 09, 2014 11:47 am    Post subject: Reply with quote

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
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    Brekeke Forum Index » Brekeke SIP Server Forum All times are GMT - 7 Hours
Page 1 of 1