Hello,
t_relay and other t_relay functions dont pass $avp variables as i
mentioned early mail and sent logs. So it makes hard to sending "proxy
sending with selected transport protocol" , that means without
changing R-URI. i didnt remember that $du solve my problem. i will try.
$du is the outbound proxy address, it doesn't change R-URI or some other
value inside the SIP message, is just internal to kamailio.
Most of those functions like t_relay_to_tcp(), ..., were developed
before having the variables, after that a lot of them can be replaced
with setting variables and just relaying.
Cheers,
Daniel
There is so many t_relay function that not suit your function pattern.
For example there is a "inline static int str2proto" function that
cannot be used in static functions . t_relay functions get parameters
on hard-code that not allow $avp values so it limits coding. t_relay_*
functions try to resolve host-addr on Kamailio startup. " static int
_w_t_relay_to" function doesnt have initializer on tm.c .
There is not need t_relay_tcp/udp/sctp ,t_relay_to_avp or other
functions. new function helps you that remove unuseful parts.Maybe new
function can be improved.
Thanks.
------------------------
*From:* Daniel-Constantin Mierla <miconda(a)gmail.com>
*Sent:* Wednesday, December 19, 2018 10:30 AM
*To:* YAS0 CANER; Kamailio (SER) - Users Mailing List
*Subject:* Re: passing $avp to t_relay functions.
Hello,
if you want to send the request to 192.168.1.199:5060 over tcp, then
the way to do it right now is:
$du = "sip:" + $avp(add) + ":" + $avp(pp) +
";transport=tcp";
t_relay();
If it is not this what you want, can you explain and give an example
of what you need to achieve?
Apart of t_relay() and t_relay_to(), the other t_relay_to_*()
functions are coming from SER project (during the 2005-2008 project
fork), so I am not sure what kind of parameters it accepts and
yesterday I didn't get the chance to look at the code.
I would avoid adding a new function that doesn't bring a new
funtionality in the group of t_relay_*(), there are many redundant
there, the plan was to remove those that are actually a duplicate in
functionality.
Cheers,
Daniel
On 19.12.18 08:16, YAS0 CANER wrote:
Hello;
i added a new function that helps to pass $avp values to t_relay
functions. it solves my problem. if it is ok , i can send a PR .
Thanks
$avp(pp)=5060;
$avp(add)="192.168.1.199";
$avp(t)="tcp";
if(!t_relay_avp( "$avp(add)","$avp(pp)","$avp(t)")){
xlog("L_ERR","Relay Problem UDP \n");
sl_send_reply("503","Relay Problemed");
exit;
}
exit;
------------------------------------------------------------------------
*From:* sr-users <sr-users-bounces(a)lists.kamailio.org>
<mailto:sr-users-bounces@lists.kamailio.org> on behalf of YAS0 CANER
<caner_yaso(a)hotmail.com> <mailto:caner_yaso@hotmail.com>
*Sent:* Tuesday, December 18, 2018 2:15 PM
*To:* Kamailio (SER) - Users Mailing List
*Subject:* Re: [SR-Users] passing $avp to t_relay functions.
Hello Daniel;
here cfg and results . i tested all of them one by one . i added some
log to understand what is log. Extra note; t_relay_to_avp is not
documented and fixup function cannot fix_param because it find
FPARAM_STR.
Thanks
$avp(pp)="5061";
$avp(add)="192.168.1.17";
$avp(addr)="192.168.1.17:5061";
$avp(dd)="udp:192.168.1.17:5061";
$avp(flags)="0x04";
#xlog("L_INF0","$C(xy) [SIPP] [extra_id_pv : $avp(reng_extraid) ]
[setid_avp : $avp(setid) ] [rtp_inst_pvar : $avp(rtp_instance) ]
$C(xx) \n");
if(t_relay_to_udp("$avp(add)", "$avp(pp)")){
xlog("L_ERR","Relay Problem UDP \n");
sl_send_reply("503","Relay Problemed");
exit;
}
/*
if(t_relay_to( "$avp(dd)","$avp(flags)")){
xlog("L_ERR","Relay Problem UDP \n");
sl_send_reply("503","Relay Problemed");
exit;
}
if(t_relay_to_avp( "$avp(pp)","$avp(add)")){
xlog("L_ERR","Relay Problem UDP \n");
sl_send_reply("503","Relay Problemed");
exit;
}
if(t_relay( "$avp(add)","$avp(pp)")){
xlog("L_ERR","Relay Problem UDP \n");
sl_send_reply("503","Relay Problemed");
exit;
}
*/
}
t_relay_to_udp result on compile
0(93337) INFO: <core> [core/tcp_main.c:4722]: init_tcp(): using
epoll_lt as the io watch method (auto detected)
0(93339) WARNING: tm [tm.c:765]: mod_init(): reparse_on_dns_failover
is enabled on a multihomed host -- check the readme of tm module!
0(93339) INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to
import bind_ob - maybe module is not loaded
0(93339) INFO: rr [rr_mod.c:177]: mod_init(): outbound module not
available
0(93339) INFO: <core> [main.c:2619]: main(): processes (at least):
33 - shm size: 67108864 - pkg size: 8388608
0(93339) ERROR: tm [tm.c:621]: fixup_hostport2proxy(): TM module:
fixup_hostport2proxy($avp(add), 1)
0(93339) ERROR: tm [tm.c:621]: fixup_hostport2proxy(): TM module:
fixup_hostport2proxy($avp(pp), 2)
0(93339) ERROR: tm [tm.c:632]: fixup_hostport2proxy(): bad port
number <$avp(pp)>
0(93339) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:492
0(93339) ERROR: <core> [core/rvalue.c:3860]: fix_rval_expr():
failure in cfg at line: 492 col: 44
0(93339) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:516
0(93339) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:517
error -1 while trying to fix configuration
0(93339) INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy():
SCTP API not initialized
t_relay_to result;
0(93592) INFO: <core> [core/tcp_main.c:4722]: init_tcp(): using
epoll_lt as the io watch method (auto detected)
0(93594) WARNING: tm [tm.c:765]: mod_init(): reparse_on_dns_failover
is enabled on a multihomed host -- check the readme of tm module!
0(93594) INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to
import bind_ob - maybe module is not loaded
0(93594) INFO: rr [rr_mod.c:177]: mod_init(): outbound module not
available
0(93594) INFO: <core> [main.c:2619]: main(): processes (at least):
33 - shm size: 67108864 - pkg size: 8388608
0(93594) ERROR: tm [tm.c:2441]: fixup_t_relay_to(): fixing austring
0(93594) ERROR: tm [tm.c:2444]: fixup_t_relay_to(): fixing austring
Not null 0(93594) ERROR: tm [tm.c:2449]: fixup_t_relay_to(): host
port proto ($avp(dd), 0, 0)
0(93594) CRITICAL: <core> [core/proxy.c:264]: mk_proxy(): could not
resolve hostname: "$avp(dd)"
0(93594) ERROR: tm [tm.c:2453]: fixup_t_relay_to(): failed to build
proxy structure for <$avp(dd)>
0(93594) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:498
0(93594) ERROR: <core> [core/rvalue.c:3860]: fix_rval_expr():
failure in cfg at line: 498 col: 42
0(93594) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:516
0(93594) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:517
error -1 while trying to fix configuration
0(93594) INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy():
SCTP API not initialized
t_relay_to_avp result ;
0(93807) INFO: <core> [core/tcp_main.c:4722]: init_tcp(): using
epoll_lt as the io watch method (auto detected)
0(93809) WARNING: tm [tm.c:765]: mod_init(): reparse_on_dns_failover
is enabled on a multihomed host -- check the readme of tm module!
0(93809) INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to
import bind_ob - maybe module is not loaded
0(93809) INFO: rr [rr_mod.c:177]: mod_init(): outbound module not
available
0(93809) INFO: <core> [main.c:2619]: main(): processes (at least):
33 - shm size: 67108864 - pkg size: 8388608
0(93809) ERROR: tm [tm.c:660]: fixup_proto_hostport2proxy(): Could
fix AVP 0
0(93809) ERROR: tm [tm.c:660]: fixup_proto_hostport2proxy(): Could
fix AVP 0
0(93809) INFO: <core> [core/udp_server.c:153]:
probe_max_receive_buffer(): SO_RCVBUF is initially 212992
0(93809) INFO: <core> [core/udp_server.c:205]:
probe_max_receive_buffer(): SO_RCVBUF is finally 425984
0(93809) INFO: <core> [core/udp_server.c:153]:
probe_max_receive_buffer(): SO_RCVBUF is initially 212992
0(93809) INFO: <core> [core/udp_server.c:205]:
probe_max_receive_buffer(): SO_RCVBUF is finally 425984
21(93830) INFO: jsonrpcs [jsonrpcs_sock.c:443]:
jsonrpc_dgram_process(): a new child 0/93830
22(93831) INFO: ctl [io_listener.c:214]: io_listen_loop():
io_listen_loop: using epoll_lt io watch method (config)
10(94948) INFO: {1 017b733724424d0dfacf197ca78fb74a@0:0:0:0:0:0:0:0}
<script>: [INVITE]
10(94948) ERROR: {1 017b733724424d0dfacf197ca78fb74a@0:0:0:0:0:0:0:0}
tm [tm.c:1234]: _t_protoaddr2proxy(): Invalid proto parameter value
in t_protoaddr2proxy_
11(94949) INFO: {1 017b733724424d0dfacf197ca78fb74a@0:0:0:0:0:0:0:0}
<script>: [ACK]
11(94949) INFO: {1 017b733724424d0dfacf197ca78fb74a@0:0:0:0:0:0:0:0}
<script>: Message received over IPv6 link
t_relay result on compile ;
0(95154) INFO: <core> [core/tcp_main.c:4722]: init_tcp(): using
epoll_lt as the io watch method (auto detected)
0(95156) WARNING: tm [tm.c:807]: mod_init(): reparse_on_dns_failover
is enabled on a multihomed host -- check the readme of tm module!
0(95156) INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to
import bind_ob - maybe module is not loaded
0(95156) INFO: rr [rr_mod.c:177]: mod_init(): outbound module not
available
0(95156) INFO: <core> [main.c:2619]: main(): processes (at least):
33 - shm size: 67108864 - pkg size: 8388608
0(95156) ERROR: tm [tm.c:663]: fixup_hostport2proxy(): TM module:
fixup_hostport2proxy($avp(add), 1)
0(95156) ERROR: tm [tm.c:663]: fixup_hostport2proxy(): TM module:
fixup_hostport2proxy($avp(pp), 2)
0(95156) ERROR: tm [tm.c:674]: fixup_hostport2proxy(): bad port
number <$avp(pp)>
0(95156) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:510
0(95156) ERROR: <core> [core/rvalue.c:3860]: fix_rval_expr():
failure in cfg at line: 510 col: 37
0(95156) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:516
0(95156) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:517
error -1 while trying to fix configuration
0(95156) INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy():
SCTP API not initialized
------------------------------------------------------------------------
*From:* sr-users <sr-users-bounces(a)lists.kamailio.org>
<mailto:sr-users-bounces@lists.kamailio.org> on behalf of YAS0 CANER
<caner_yaso(a)hotmail.com> <mailto:caner_yaso@hotmail.com>
*Sent:* Tuesday, December 18, 2018 11:30 AM
*To:* Kamailio (SER) - Users Mailing List
*Subject:* [SR-Users] passing $avp to t_relay functions.
Hello ,
is there a way to pass $avp values to t_relay function. i tried ;
t_relay
t_relay_udp/tcp
t_relay_to
t_relay_avp functions
log
0(75155) ERROR: tm [tm.c:2456]: fixup_t_relay_to(): fixing ($avp(dd), 1)
0(75155) ERROR: tm [tm.c:2459]: fixup_t_relay_to(): param type 8
0(75155) ERROR: tm [tm.c:2456]: fixup_t_relay_to(): fixing
($avp(flags), 2)
0(75155) ERROR: tm [tm.c:2459]: fixup_t_relay_to(): param type 11
0(75155) CRITICAL: tm [tm.c:2549]: fixup_t_relay_to(): invalid flags
<$avp(flags)>
0(75155) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:489
0(75155) ERROR: <core> [core/rvalue.c:3860]: fix_rval_expr():
failure in cfg at line: 489 col: 42
0(75155) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:494
0(75155) ERROR: <core> [core/route.c:1154]: fix_actions(): fixing
failed (code=-1) at cfg:/usr/local/etc/kamailio/kamailio.cfg:495
in addition i have a look code , in fixup functions try to resolve
host values so parameteres cannot find $avp .
in conclusion , does kamailio need new function to pass $avp value?
Can i try to code?
Thanks.
--
Daniel-Constantin Mierla --
www.asipto.com <http://www.asipto.com>
www.twitter.com/miconda <http://www.twitter.com/miconda> --
www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
Kamailio World Conference - May 6-8, 2019 --
www.kamailioworld.com
<http://www.kamailioworld.com>
Kamailio Advanced Training - Mar 4-6, 2019 in Berlin; Mar 25-27, 2019, in Washington, DC,
USA --
www.asipto.com <http://www.asipto.com>
Kamailio Advanced Training - Mar 4-6, 2019 in Berlin; Mar 25-27, 2019, in Washington, DC,
USA --