### Description
SIP OPTION relayed using `t_forward_nonack()` not being URI decoded
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Troubleshooting
#### Reproduction
register with PATH and use SIP OPTION keep alive
or simply send relay a SIP OPTIONS with a route.
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```#1 0x00007fa3067a998f in t_forward_nonack (t=0x7fa3246fce88,
p_msg=0x7fa3885aa1c0, proxy=0x0, proto=0) at t_fwd.c:1729
1729 raise(SIGSEGV);
(gdb) l
1724 ser_error=MIN_int(lowest_ret, E_CFG);
1725 return -1;
1726 }
1727 if(lowest_ret!=E_CFG) {
1728 LM_ERR("failure to add branches\n");
1729 raise(SIGSEGV); << raising exception to get the coredump
1730 }
1731 ser_error=lowest_ret;
1732 return lowest_ret;
1733 }
```
#### Log Messages
```
4(34) ERROR: tm [ut.h:245]: uri2dst2(): bad_uri: sip:247.25.169.51:52307%3Btransport%3Dtls
4(34) ERROR: tm [t_fwd.c:1728]: t_forward_nonack(): failure to add branches
```
### Possible Solutions
This patch can fix the problem from the routing script :
```
if (is_method("OPTIONS") && uri!=myself) {
$var(path_uri) = $(hdr(Route){re.subst,/<(.*)>/\1/});
if (defined $(var(path_uri){uri.params}) && $(var(path_uri){uri.params}{param.value,received}) != "") {
$var(received) = $(var(path_uri){uri.params}{param.value,received});
if ($var(received) =~ "sip:.*:.*") {
$du = $var(received);
$avp(received) = $(var(path_uri){uri.params}{param.value,received});
avp_subst("$avp(received)", "/%3Btransport%3Dtcp/;transport=tcp/ig");
if ($avp(received) =~ "sip:.*:.*") {
$du = $avp(received);
}
}
t_relay();
}
```
### Additional Information
tested on 5.3.2, something changed during 5.3.0.dev, I will try to pin point the commit
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2255
Hello,
I am newbie to Kamailio, after a lot searching kamailio doc , I am unable to find change in configuration file (kamailio.cfg). Which redirect the call from kamailio to freeswitch if the call is answered in kamailio.
Thanks.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2434
Likely non-critical, but during the build, reports `-DCOMPILER='"gcc 0.2.1"'` when compiling with gcc 10.2.1 on Fedora 32 x86_64.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2425
Hi,
The documentation for `registrar` says that record properties can be
stored in the XAVP set in the `xavp_rcd` modparam when `registered()` is
called.
But it does not say that this XAVP will be populated when a `lookup()`
is done. And yet, it is populated; I have recently benefited from this.
I think this is a really bit of functionality to mention, otherwise one
is left guessing how many registrar operations are required to obtain
usrloc binding data.
I will be happy to push a documentation fix to correct this, but I
wanted to clarify whether this is just an oversight or whether this is
unexpected behaviour.
Thanks,
-- Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/