Hi guys,

sometimes the ACK works.
I have to calls:
1) Call from PSTN to SIP behind UMTS
2) Call from PSTN to SIP behind Firewall, NAT

The first call works like a charm, on the second call the ACK is relayed to the 
private IP.
The differences which i saw:
1) on UMTS ip and port are different, on the 2 call only the ip is different:
2) on UMTS the contact from 200 OK sent by client contains the correct ip and 
port, behind the Firewall the contact contains the private IP


1) different ip and port, the ACK is correct
INVITE from registrar/core to edge:
INVITE sip:julian.santer@10.108.69.144:42680;transport=udp SIP/2.0

Via: SIP/2.0/UDP 195.254.254.7:5060;branch=z9hG4bK7d0b.4ab027f6.0
Route: <sip:195.254.254.4;lr;received=sip:5.90.5.144:31172>



200 OK from client to edge:
Via: SIP/2.0/UDP 195.254.254.4:5060;branch=z9hG4bK6f83.33a2af56.0

Contact: "julian.santer" <sip:julian.santer@5.90.5.144:31172;transport=udp>

ACK from edge to client:
ACK sip:julian.santer@5.90.5.144:31172;transport=udp SIP/2.0

Via: SIP/2.0/UDP 195.254.254.4:5060;branch=z9hG4bK6f83.33a2af56.2




2) same ip, different PORT, the ACK is not correct
INVITE from registrar/core to edge:

INVITE sip:s@192.168.162.10:5060 SIP/2.0

Via: SIP/2.0/UDP 195.254.254.7:5060;branch=z9hG4bKd99e.5ba048e5.0
Route: <sip:195.254.254.4;lr;received=sip:31.207.121.195:5060>


200 OK from client to edge:
Via: SIP/2.0/UDP 
195.254.254.4:5060;branch=z9hG4bK298c.fc0e2d72.0;received=195.254.254.4;rport=5060

Contact: <sip:s@192.168.162.10:5060>


ACK from edge to client:
ACK sip:s@192.168.162.10:5060 SIP/2.0

Via: SIP/2.0/UDP 195.254.254.4:5060;branch=z9hG4bK298c.fc0e2d72.2


So one time it works and one time not.
The differences what I found are:
1)
- the 1. working call the ip and port from the contact and the received are 
different
- the 2. non working call the ip from the contact and the received are 
different, but the ports are the same

2)
- the 1. working call sends in the contact on the 200 OK package the public ip 
and port
- the 2. non working call send in the contact on the 200 OK package the private 
ip and port

Have we to call fix_contact on the 200 OK? And this will fix the misbehaviour?

Kind regards,
Julian Santer
Raiffeisen OnLine



Am 15.03.2016 um 14:14 schrieb Julian Santer:
Hi guys,

we use OpenSip 2.1.2.
We have a registrar/core (1.2.3.5) and a edge (1.2.3.4) server. We use the path 
module with use_received = 1 on the edge server.
This works for the INVITE, but not for the ACK package. The ACK package is 
relayed to the private IP.

The ACK packages enters in the topology_hiding route on the edge server:

if (topology_hiding_match())
{
    t_relay();
    exit;
}

The package received on edge from the registrar/core looks like:

ACK sip:1.2.3.4;rdlg=6be.12762257 SIP/2.0

Via: SIP/2.0/UDP 1.2.3.5:5060;branch=z9hG4bK0deb.6b9adeb2.2

From: <sip:123456789@domain>;tag=F8155FD8-19F9

To: <sip:23456789@domain>;tag=cd783455

Call-ID: 
Core2_ExwGCwAcKScoSw8uBgl/KDk2AQAoGD8zCgcpJz9oDxgWDnxzFxcmWg0KPDNKcCk2AXUIAT80YXMLMyR1BSwlCUUgNUIgHw--

Max-Forwards:  7

CSeq: 101 ACK

Content-Length: 0

P-hint: rr-enforced

The package send from edge to client looks like:

ACK sip:192.168.0.2:65002;transport=udp SIP/2.0

Via: SIP/2.0/UDP 1.2.3.4:5060;branch=z9hG4bK88d9.aada3c03.2

From: <sip:123456789@domain> tag=F8155FD8-19F9

To: <sip:23456789@domain>;tag=cd783455

Call-ID: 
Edge2_BgsVAAAaIR8SdQYTJgZ5FgcINkV9ESUCXmovIw4ABDUmCnUBXB0mVSYULR8LKiAfAmUBCh8fdD0HCjJVdS83IXwOByQOAAQ8MixzEVxXPGoIKCocYHQmNBJeBjEyAnwQLQAtRWhJ

Max-Forwards:  6

CSeq: 101 ACK

Content-Length: 0

P-hint: rr-enforced

How can I rewrite the destination set to the public IP? What is missing?

The 200 OK for the BYE package is routed correctly:

SIP/2.0 200 OK

Via: SIP/2.0/UDP 
192.168.0.2:65002;received=PUBLIC_IP;rport=16855;branch=z9hG4bK-d8754z-5d46c107720d2f4a-1---d8754z-

From: <sip:123456...@domain.it>;tag=cd783455

To: <sip:23456...@domain.it>;tag=F8155FD8-19F9

Call-ID: 
Edge2_BgsVAAAaIR8SdQYTJgZ5FgcINkV9ESUCXmovIw4ABDUmCnUBXB0mVSYULR8LKiAfAmUBCh8fdD0HCjJVdS83IXwOByQOAAQ8MixzEVxXPGoIKCocYHQmNBJeBjEyAnwQLQAtRWhJ

Content-Length: 0

CSeq: 1 BYE

Here the edge server enters the prublic IP in the via header as received param.
Why he don't to this for the ACK package?

Kind regards,
Julian Santer
Raiffeisen OnLine





_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to