[OpenSIPS-Users] ACK is sent to the wrong IP

Julian Santer julian.santer at rolmail.net
Tue Mar 15 20:24:34 CET 2016


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 at 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 at 5.90.5.144:31172;transport=udp>

ACK from edge to client:
ACK sip:julian.santer at 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 at 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 at 192.168.162.10:5060>


ACK from edge to client:
ACK sip:s at 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 at domain>;tag=F8155FD8-19F9
>
> To: <sip:23456789 at 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 at domain> tag=F8155FD8-19F9
>
> To: <sip:23456789 at 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:123456789 at domain.it>;tag=cd783455
>
> To: <sip:23456789 at 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
>
>





More information about the Users mailing list