Re: [OpenSIPS-Users] Port changes
Hi Schneur, It is not 100% correct, as a sip message may come from a another SIP server and in this case the Contact (belong to the end point) should not be re-written with the IP OPenSIPS sees as source (which is the other SIP server). Shortly said, you can force the re-write as time as you know that you are dealing with traffic from a SIP endpoint (or acting as an endpoint), and not from a SIP proxy. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Summit 2018 http://www.opensips.org/events/Summit-2018Amsterdam On 02/14/2018 01:45 PM, Schneur Rosenberg wrote: You're right, I noticed that the port was wrong at the first invite, but I didn't realize that it was fixed, I thought it left it untouched, I just checked again and you're correct it did fix it. Is there any downside (besides for obvious performance reasons) to call fix_nated_contact() on each packet? 99% of our customers are behind NAT anyway, I assume it cant hurt, I assume it uses the received IP and port to rewrite the contact, so even if the correct IP and port was sent with the initial invite it wont do any harm, is my assumption correct? On Wed, Feb 14, 2018 at 11:24 AM, Bogdan-Andrei Iancu wrote: Hi Schneur, I see at initial INVITE you have the same issue - the contact advertises the 34063 port, but the source IP is 1090; and you do fix_nated_contact(). So, based on the initial contact, you learned that the caller device is behind a NAT (or with a bogus ALG). The idea is to remember this (caller requires help) during the whole dialog (maybe using some dialog flags) and each time you receive a request / reply from it -> do the fix_nated_contact(). This will trigger the fix on the 200 OK and to get a routable URI there. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Summit 2018 http://www.opensips.org/events/Summit-2018Amsterdam On 02/13/2018 12:16 PM, Schneur Rosenberg wrote: Bogdan its only happening when the clients SIP ALG fixes the contact, when the contact is broken I'm already using fix_nated_contact, do you think I should use fix_nated_contact even when the contact was already fixed by the SIP ALG? The clients router does not support disabling SIP ALG, I can try using a non standard port, I've sen some routers ALG ignoring the packets when sent to alternative port. On Tue, Feb 13, 2018 at 12:04 PM, Bogdan-Andrei Iancu wrote: Hi Schneur, The ACK is routed back via the Route set (the Record Route headers from the initial Invite) and the Contact received in the final reply (in the 200 OK in your case). This is called in-dialog routing and is exclusively based on Route set (RR headers + Contact). The rport as part of via is used only for routing back the replies for a requests (in transaction routing) and has no impact on the in-dialog routing. So, if the RURI in ACK (which should be the Contact in the received 200 OK) is broken, maybe you should do a fix_nated_contact() for the Contact when handling the 200 OK reply. Best regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Summit 2018 http://www.opensips.org/events/Summit-2018Amsterdam On 02/12/2018 05:05 PM, Schneur Rosenberg wrote: I have this interesting scenario, caller sends call to our OpenSIPS who actsd as a loadbalancer which sends the call to a gateway for termination and the gateway sets Session-Expires: 1800;refresher=uas, the caller sends call the call through port 1090 and the rport in the Via shows rport=1090 and so far everything is ok, but after 15 minutes the gateway sends a reinvite, OpenSIPS sends it to the client and the client sends a OK and OpenSIPS properly sends the OK to the gateway, the gateway sends a ACK to OpenSIPS, but here the problem starts OpenSIPS sends the ACK to the port in the Contact header which is not the same port as the rport, the clients router does not recognize the packet and blocks it, the client sends multiple OK's to OpenSIPS who ignores it because he has already moved on, as far as OpenSIPS is concerned the ACK has already been sent to the next hop, and after approx 30 seconds the client does not receive the ACK and sends a BYE and the call terminates. Why is OpenSIPS changing the port to the Contact port? and what can I do to fix it? ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Port changes
You're right, I noticed that the port was wrong at the first invite, but I didn't realize that it was fixed, I thought it left it untouched, I just checked again and you're correct it did fix it. Is there any downside (besides for obvious performance reasons) to call fix_nated_contact() on each packet? 99% of our customers are behind NAT anyway, I assume it cant hurt, I assume it uses the received IP and port to rewrite the contact, so even if the correct IP and port was sent with the initial invite it wont do any harm, is my assumption correct? http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank">https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; alt="" width="46" height="29" style="width: 46px; height: 29px;" /> Virus-free. http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank" style="color: #4453ea;">www.avg.com On Wed, Feb 14, 2018 at 11:24 AM, Bogdan-Andrei Iancu wrote: > Hi Schneur, > > I see at initial INVITE you have the same issue - the contact advertises the > 34063 port, but the source IP is 1090; and you do fix_nated_contact(). So, > based on the initial contact, you learned that the caller device is behind a > NAT (or with a bogus ALG). The idea is to remember this (caller requires > help) during the whole dialog (maybe using some dialog flags) and each time > you receive a request / reply from it -> do the fix_nated_contact(). This > will trigger the fix on the 200 OK and to get a routable URI there. > > Regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > http://www.opensips-solutions.com > OpenSIPS Summit 2018 > http://www.opensips.org/events/Summit-2018Amsterdam > > On 02/13/2018 12:16 PM, Schneur Rosenberg wrote: >> >> Bogdan its only happening when the clients SIP ALG fixes the contact, >> when the contact is broken I'm already using fix_nated_contact, do you >> think I should use fix_nated_contact even when the contact was already >> fixed by the SIP ALG? >> >> The clients router does not support disabling SIP ALG, I can try using >> a non standard port, I've sen some routers ALG ignoring the packets >> when sent to alternative port. >> >> On Tue, Feb 13, 2018 at 12:04 PM, Bogdan-Andrei Iancu >> wrote: >>> >>> Hi Schneur, >>> >>> The ACK is routed back via the Route set (the Record Route headers from >>> the >>> initial Invite) and the Contact received in the final reply (in the 200 >>> OK >>> in your case). This is called in-dialog routing and is exclusively based >>> on >>> Route set (RR headers + Contact). >>> >>> The rport as part of via is used only for routing back the replies for a >>> requests (in transaction routing) and has no impact on the in-dialog >>> routing. >>> >>> So, if the RURI in ACK (which should be the Contact in the received 200 >>> OK) >>> is broken, maybe you should do a fix_nated_contact() for the Contact when >>> handling the 200 OK reply. >>> >>> Best regards, >>> >>> Bogdan-Andrei Iancu >>> >>> OpenSIPS Founder and Developer >>>http://www.opensips-solutions.com >>> OpenSIPS Summit 2018 >>>http://www.opensips.org/events/Summit-2018Amsterdam >>> >>> >>> On 02/12/2018 05:05 PM, Schneur Rosenberg wrote: I have this interesting scenario, caller sends call to our OpenSIPS who actsd as a loadbalancer which sends the call to a gateway for termination and the gateway sets Session-Expires: 1800;refresher=uas, the caller sends call the call through port 1090 and the rport in the Via shows rport=1090 and so far everything is ok, but after 15 minutes the gateway sends a reinvite, OpenSIPS sends it to the client and the client sends a OK and OpenSIPS properly sends the OK to the gateway, the gateway sends a ACK to OpenSIPS, but here the problem starts OpenSIPS sends the ACK to the port in the Contact header which is not the same port as the rport, the clients router does not recognize the packet and blocks it, the client sends multiple OK's to OpenSIPS who ignores it because he has already moved on, as far as OpenSIPS is concerned the ACK has already been sent to the next hop, and after approx 30 seconds the client does not receive the ACK and sends a BYE and the call terminates. Why is OpenSIPS changing the port to the Contact port? and what can I do to fix it? >>> href="http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank" src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; alt="" width="46" height="29" style="width: 46px; height: 29px;" /> Virus-free. >>> href="http://www.avg.com/email-signature?utm_m
Re: [OpenSIPS-Users] Port changes
Hi Schneur, I see at initial INVITE you have the same issue - the contact advertises the 34063 port, but the source IP is 1090; and you do fix_nated_contact(). So, based on the initial contact, you learned that the caller device is behind a NAT (or with a bogus ALG). The idea is to remember this (caller requires help) during the whole dialog (maybe using some dialog flags) and each time you receive a request / reply from it -> do the fix_nated_contact(). This will trigger the fix on the 200 OK and to get a routable URI there. Regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Summit 2018 http://www.opensips.org/events/Summit-2018Amsterdam On 02/13/2018 12:16 PM, Schneur Rosenberg wrote: Bogdan its only happening when the clients SIP ALG fixes the contact, when the contact is broken I'm already using fix_nated_contact, do you think I should use fix_nated_contact even when the contact was already fixed by the SIP ALG? The clients router does not support disabling SIP ALG, I can try using a non standard port, I've sen some routers ALG ignoring the packets when sent to alternative port. On Tue, Feb 13, 2018 at 12:04 PM, Bogdan-Andrei Iancu wrote: Hi Schneur, The ACK is routed back via the Route set (the Record Route headers from the initial Invite) and the Contact received in the final reply (in the 200 OK in your case). This is called in-dialog routing and is exclusively based on Route set (RR headers + Contact). The rport as part of via is used only for routing back the replies for a requests (in transaction routing) and has no impact on the in-dialog routing. So, if the RURI in ACK (which should be the Contact in the received 200 OK) is broken, maybe you should do a fix_nated_contact() for the Contact when handling the 200 OK reply. Best regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Summit 2018 http://www.opensips.org/events/Summit-2018Amsterdam On 02/12/2018 05:05 PM, Schneur Rosenberg wrote: I have this interesting scenario, caller sends call to our OpenSIPS who actsd as a loadbalancer which sends the call to a gateway for termination and the gateway sets Session-Expires: 1800;refresher=uas, the caller sends call the call through port 1090 and the rport in the Via shows rport=1090 and so far everything is ok, but after 15 minutes the gateway sends a reinvite, OpenSIPS sends it to the client and the client sends a OK and OpenSIPS properly sends the OK to the gateway, the gateway sends a ACK to OpenSIPS, but here the problem starts OpenSIPS sends the ACK to the port in the Contact header which is not the same port as the rport, the clients router does not recognize the packet and blocks it, the client sends multiple OK's to OpenSIPS who ignores it because he has already moved on, as far as OpenSIPS is concerned the ACK has already been sent to the next hop, and after approx 30 seconds the client does not receive the ACK and sends a BYE and the call terminates. Why is OpenSIPS changing the port to the Contact port? and what can I do to fix it? http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank">https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; alt="" width="46" height="29" style="width: 46px; height: 29px;" /> Virus-free. http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank" style="color: #4453ea;">www.avg.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Port changes
Bogdan its only happening when the clients SIP ALG fixes the contact, when the contact is broken I'm already using fix_nated_contact, do you think I should use fix_nated_contact even when the contact was already fixed by the SIP ALG? The clients router does not support disabling SIP ALG, I can try using a non standard port, I've sen some routers ALG ignoring the packets when sent to alternative port. I feel like its a bug in OpenSIPS, because the reinvite is routed to the proper port, the issue starts with the ACK for the reinvite, I will email the trace directly to you. On Tue, Feb 13, 2018 at 12:04 PM, Bogdan-Andrei Iancu wrote: > Hi Schneur, > > The ACK is routed back via the Route set (the Record Route headers from the > initial Invite) and the Contact received in the final reply (in the 200 OK > in your case). This is called in-dialog routing and is exclusively based on > Route set (RR headers + Contact). > > The rport as part of via is used only for routing back the replies for a > requests (in transaction routing) and has no impact on the in-dialog > routing. > > So, if the RURI in ACK (which should be the Contact in the received 200 OK) > is broken, maybe you should do a fix_nated_contact() for the Contact when > handling the 200 OK reply. > > Best regards, > > Bogdan-Andrei Iancu > > OpenSIPS Founder and Developer > http://www.opensips-solutions.com > OpenSIPS Summit 2018 > http://www.opensips.org/events/Summit-2018Amsterdam > > > On 02/12/2018 05:05 PM, Schneur Rosenberg wrote: >> >> I have this interesting scenario, caller sends call to our OpenSIPS >> who actsd as a loadbalancer which sends the call to a gateway for >> termination and the gateway sets Session-Expires: 1800;refresher=uas, >> the caller sends call the call through port 1090 and the rport in the >> Via shows rport=1090 and so far everything is ok, but after 15 minutes >> the gateway sends a reinvite, OpenSIPS sends it to the client and the >> client sends a OK and OpenSIPS properly sends the OK to the gateway, >> the gateway sends a ACK to OpenSIPS, but here the problem starts >> OpenSIPS sends the ACK to the port in the Contact header which is not >> the same port as the rport, the clients router does not recognize the >> packet and blocks it, the client sends multiple OK's to OpenSIPS who >> ignores it because he has already moved on, as far as OpenSIPS is >> concerned the ACK has already been sent to the next hop, and after >> approx 30 seconds the client does not receive the ACK and sends a BYE >> and the call terminates. >> >> Why is OpenSIPS changing the port to the Contact port? and what can I >> do to fix it? >> >> >> > >> href="http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; >> target="_blank">> >> src="https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; >> alt="" width="46" height="29" style="width: 46px; height: 29px;" >> /> >> Virus-free. > >> href="http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; >> target="_blank" style="color: #4453ea;">www.avg.com >> >> >> > height="1"> >> >> ___ >> Users mailing list >> Users@lists.opensips.org >> http://lists.opensips.org/cgi-bin/mailman/listinfo/users > > ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Port changes
Hi Schneur, The ACK is routed back via the Route set (the Record Route headers from the initial Invite) and the Contact received in the final reply (in the 200 OK in your case). This is called in-dialog routing and is exclusively based on Route set (RR headers + Contact). The rport as part of via is used only for routing back the replies for a requests (in transaction routing) and has no impact on the in-dialog routing. So, if the RURI in ACK (which should be the Contact in the received 200 OK) is broken, maybe you should do a fix_nated_contact() for the Contact when handling the 200 OK reply. Best regards, Bogdan-Andrei Iancu OpenSIPS Founder and Developer http://www.opensips-solutions.com OpenSIPS Summit 2018 http://www.opensips.org/events/Summit-2018Amsterdam On 02/12/2018 05:05 PM, Schneur Rosenberg wrote: I have this interesting scenario, caller sends call to our OpenSIPS who actsd as a loadbalancer which sends the call to a gateway for termination and the gateway sets Session-Expires: 1800;refresher=uas, the caller sends call the call through port 1090 and the rport in the Via shows rport=1090 and so far everything is ok, but after 15 minutes the gateway sends a reinvite, OpenSIPS sends it to the client and the client sends a OK and OpenSIPS properly sends the OK to the gateway, the gateway sends a ACK to OpenSIPS, but here the problem starts OpenSIPS sends the ACK to the port in the Contact header which is not the same port as the rport, the clients router does not recognize the packet and blocks it, the client sends multiple OK's to OpenSIPS who ignores it because he has already moved on, as far as OpenSIPS is concerned the ACK has already been sent to the next hop, and after approx 30 seconds the client does not receive the ACK and sends a BYE and the call terminates. Why is OpenSIPS changing the port to the Contact port? and what can I do to fix it? http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank">https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; alt="" width="46" height="29" style="width: 46px; height: 29px;" /> Virus-free. http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank" style="color: #4453ea;">www.avg.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Re: [OpenSIPS-Users] Port changes
Hi Schneur, do you have force_rport() in your opensips.cfg ? hard to make any other comments without looking at your config. On Monday, 12 February 2018, 20:36, Schneur Rosenberg wrote: I have this interesting scenario, caller sends call to our OpenSIPS who actsd as a loadbalancer which sends the call to a gateway for termination and the gateway sets Session-Expires: 1800;refresher=uas, the caller sends call the call through port 1090 and the rport in the Via shows rport=1090 and so far everything is ok, but after 15 minutes the gateway sends a reinvite, OpenSIPS sends it to the client and the client sends a OK and OpenSIPS properly sends the OK to the gateway, the gateway sends a ACK to OpenSIPS, but here the problem starts OpenSIPS sends the ACK to the port in the Contact header which is not the same port as the rport, the clients router does not recognize the packet and blocks it, the client sends multiple OK's to OpenSIPS who ignores it because he has already moved on, as far as OpenSIPS is concerned the ACK has already been sent to the next hop, and after approx 30 seconds the client does not receive the ACK and sends a BYE and the call terminates. Why is OpenSIPS changing the port to the Contact port? and what can I do to fix it? http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank">https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; alt="" width="46" height="29" style="width: 46px; height: 29px;" /> Virus-free. http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank" style="color: #4453ea;">www.avg.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users
[OpenSIPS-Users] Port changes
I have this interesting scenario, caller sends call to our OpenSIPS who actsd as a loadbalancer which sends the call to a gateway for termination and the gateway sets Session-Expires: 1800;refresher=uas, the caller sends call the call through port 1090 and the rport in the Via shows rport=1090 and so far everything is ok, but after 15 minutes the gateway sends a reinvite, OpenSIPS sends it to the client and the client sends a OK and OpenSIPS properly sends the OK to the gateway, the gateway sends a ACK to OpenSIPS, but here the problem starts OpenSIPS sends the ACK to the port in the Contact header which is not the same port as the rport, the clients router does not recognize the packet and blocks it, the client sends multiple OK's to OpenSIPS who ignores it because he has already moved on, as far as OpenSIPS is concerned the ACK has already been sent to the next hop, and after approx 30 seconds the client does not receive the ACK and sends a BYE and the call terminates. Why is OpenSIPS changing the port to the Contact port? and what can I do to fix it? http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank">https://ipmcdn.avast.com/images/icons/icon-envelope-tick-green-avg-v1.png"; alt="" width="46" height="29" style="width: 46px; height: 29px;" /> Virus-free. http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail"; target="_blank" style="color: #4453ea;">www.avg.com ___ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users