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@lists.kamailio.org> on behalf of YAS0 CANER <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@lists.kamailio.org> on behalf of YAS0 CANER <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.