[OpenSIPS-Users] ACK Routing Issue
Diptesh Patel
diptesh.patel at ecosmob.com
Fri Jun 5 13:44:53 EST 2020
Hello Mark,
You need to modify your script. Let me explain to you how topology
hiding works. If you're using topology hiding then we are hiding the
information from the other node right? So the topology hiding stores your
next hop information. When you call topology_hiding_match() then it will
replace the request uri with the next hop. So you need to use
topology_hiding_match() on every within dialog request(sequential
requests), otherwise it will create looping.
you can check the following snippet which i modified. It helps you !!
if (has_totag()) {
xlog("CUSTOM_LOG: in-dialog $rm has message flags: $mf and branch
flags: $bf");
#Set correct SIP User-Agent Header
if (remove_hf("User-Agent")) {
xlog("CUSTOM_LOG: Setting SIP User-Agent on In-Dialog Request");
insert_hf("User-Agent: OpenSIPS\r\n");
}
# handle hop-by-hop ACK (no routing required)
if ( is_method("ACK") && t_check_trans() ) {
xlog("CUSTOM_LOG: ACK detected with valid transaction - t_relay");
t_relay();
exit;
}
if (topology_hiding_match()) {
##TH match and relay all the within dialog packets.
t_relay();
exit;
} else {
xlog("CUSTOM_LOG: cannot match request to a dialog \n");
send_reply(404,"Not found");
exit;
}
}
Thanks & Regards
*Diptesh Patel*
Software Developer
Ecosmob Technologies Ltd,
Ahmedabad
Mo:*+919898962659*
On Fri, Jun 5, 2020 at 6:37 PM Mark Farmer <farmorg at gmail.com> wrote:
> Thanks Diptesh
>
> I'm using topology hiding, so now I have this:
>
> if (has_totag()) {
> xlog("CUSTOM_LOG: in-dialog $rm has message flags: $mf and
> branch flags: $bf");
>
> #Set correct SIP User-Agent Header
> if (remove_hf("User-Agent")) {
> xlog("CUSTOM_LOG: Setting SIP User-Agent on In-Dialog
> Request");
> insert_hf("User-Agent: OpenSIPS\r\n");
> }
>
> if (!topology_hiding_match() ) {
> xlog("CUSTOM_LOG: cannot match request to a dialog
> \n");
> send_reply(404,"Not found");
> }
>
> # handle hop-by-hop ACK (no routing required)
> if ( is_method("ACK") && t_check_trans() ) {
> xlog("CUSTOM_LOG: ACK detected with valid
> transaction - t_relay");
> t_relay();
> exit;
> }
>
> I don't see a 404 going out so I think topology_hiding_match is working.
> But it tries to send the ACK to itself on it's private interface (I have
> mhomed=1).
>
> ACK sip:+44XXXXXXXXXX at 10.150.50.72;did=e07.595f3776 SIP/2.0
> Via: SIP/2.0/UDP PUB.LIC.IP.ADDR:5060;branch=z9hG4bKc219.d1f5b08.2
> From: <sip:+441204860410 at PUB.LIC.IP.ADDR;user=phone>;tag=gK0c801c8d
> To: <sip:+44XXXXXXXXXX at 147.152.17.42>;tag=3800350621-1224267434
> Call-ID: 543691539-3800350621-1514620980 at sbc-uk-bs13b.uk.sdin.bt.net
> CSeq: 202841 ACK
> Max-Forwards: 69
> Content-Length: 0
>
> Best regards
> Mark.
>
>
> On Fri, 5 Jun 2020 at 13:03, Diptesh Patel <diptesh.patel at ecosmob.com>
> wrote:
>
>> Hello Mark,
>>
>> Are you using Topology Hiding or Loose Routing?
>>
>> If you are using Topology Hiding then you need to match the topology
>> using *topology_hiding_match()* first.
>>
>> It is great if you can share SIP packets.
>>
>> Thanks & Regards
>> *Diptesh Patel*
>> Software Developer
>> Ecosmob Technologies Ltd,
>> Ahmedabad
>> Mo:*+919898962659*
>>
>>
>> On Fri, Jun 5, 2020 at 5:00 PM Mark Farmer <farmorg at gmail.com> wrote:
>>
>>> Hi everyone
>>>
>>> I've upgraded an OpenSIPS box to 3.1 and am now seeing an issue with
>>> ACK's trying to route to an incorrect IP - in this case our own advertised
>>> IP.
>>>
>>> I think I'm right in saying that PRACK's & ACK's are treated equally and
>>> should route in the same manner? However, PRACK's are routing correctly.
>>>
>>> I have this:
>>>
>>> if (has_totag()) {
>>> ---
>>>
>>> # handle hop-by-hop ACK (no routing required)
>>> #if ( is_method("ACK") && t_check_trans() ) {
>>> if (is_method("ACK")) {
>>> t_relay();
>>> exit;
>>> }
>>> ---
>>>
>>> Thanks for any ideas!
>>> Mark.
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>
>> *Disclaimer*
>> In addition to generic Disclaimer which you have agreed on our website,
>> any views or opinions presented in this email are solely those of the
>> originator and do not necessarily represent those of the Company or its
>> sister concerns. Any liability (in negligence, contract or otherwise)
>> arising from any third party taking any action, or refraining from taking
>> any action on the basis of any of the information contained in this email
>> is hereby excluded.
>>
>> *Confidentiality*
>> This communication (including any attachment/s) is intended only for the
>> use of the addressee(s) and contains information that is PRIVILEGED AND
>> CONFIDENTIAL. Unauthorized reading, dissemination, distribution, or copying
>> of this communication is prohibited. Please inform originator if you have
>> received it in error.
>>
>> *Caution for viruses, malware etc.*
>> This communication, including any attachments, may not be free of
>> viruses, trojans, similar or new contaminants/malware, interceptions or
>> interference, and may not be compatible with your systems. You shall carry
>> out virus/malware scanning on your own before opening any attachment to
>> this e-mail. The sender of this e-mail and Company including its sister
>> concerns shall not be liable for any damage that may incur to you as a
>> result of viruses, incompleteness of this message, a delay in receipt of
>> this message or any other computer problems.
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
> --
> Mark Farmer
> farmorg at gmail.com
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on our
website, any views or opinions presented in this email are solely those of
the originator and do not necessarily represent those of the Company or its
sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20200605/df413124/attachment.html>
More information about the Users
mailing list