Hello;
i want to force message to send over TCP and IPv6 . so it should be R/W variable. When i
set $fs or force_send_socket() it gives error about mismatch protocol !
Thanks.
Yasin CANER
________________________________
From: sr-users <sr-users-bounces(a)lists.kamailio.org> on behalf of YAS0 CANER
<caner_yaso(a)hotmail.com>
Sent: Friday, December 14, 2018 4:27 PM
To: Kamailio (SER) - Users Mailing List
Subject: [SR-Users] Problem with selection Transport Protocol - MultiHomed Problem
Hello ,
i have trouble about selection transport protocol. i have tried so many thing but couldnt
find TM selected which IPv? and protocol type (TCP or UDP)
For example;
i have 2 interface ipv6 and ipv4. i will route my message (INVITE-Register etc.) another
node that use TCP and IPV6 , domain name is test1.test. TM module or some module resolve
this domain to IPV6:UDP but i want to sent it over IPV6:TCP socket. so i cannot know
which protocol is resolved and cannot route the right socket.
$du variable show only sip:ali@test1.test
Conclusion : There isn't any pseudo value about which destination of IP version will
use.
Thanks
Flow:
UAC (IPv4:UDP) ----------> Kamailio (MultiHomed) ----> (TCP:IPv6)Kamailio
----
Kamailo (multiHomed ) cfg
------
auto_bind_ipv6=1
dns_try_ipv6=yes
dns_retr_time=1
dns_retr_no=1
dns_cache_flags=4
mhomed=1
fork=yes
tcp_source_ipv6 = [fd61:c23c:b3b6::5]
listen=tcp:[fd61:c23c:b3b2::5]:5060
listen=udp:[fd61:c23c:b3b2::5]:5060
listen=udp:192.168.1.107:5060
listen=tcp:192.168.1.107:5060
route []{
if($dP=="TCP"){
xlog("L_INFO","[route] [TCP] 1\n");
if (!t_relay_to_tcp()) {
xlog("L_ERR", "Error t_relay [route] \n");
t_reply("500","Server - ERROR ");
exit;
}
} else if($dP=="TCP"){
xlog("L_INFO","[route] [TCP] 2\n");
if (!t_relay_to_tcp()) {
xlog("L_ERR", "Error t_relay [route] \n");
t_reply("500","Server - ERROR ");
exit;
}
}else if($dP=="UDP"){
xlog("L_INFO","[route] [UDP] 1\n");
if (!t_relay_to_udp()) {
xlog("L_ERR", "Error t_relay [route] \n");
t_reply("500","Server - ERROR ");
exit;
}
}else{
xlog("L_INFO","[route] [??] 1\n");
if (!t_relay()) {
xlog("L_ERR", "Error t_relay [route] \n");
t_reply("500","Server - ERROR ");
exit;
}
}
}