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

Julian Santer julian.santer at rolmail.net
Mon Mar 21 19:18:18 CET 2016


Hi guys,

it was my mistake.
We now call nat_uac_test and fix_nated_contact and it works like expected.
Thank you for your time

Kind regards,
Julian Santer
Raiffeisen OnLine

Am 15.03.2016 um 20:24 schrieb Julian Santer:
> 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