I see unexpected return code from route if there is no explicit return
and switch-case block.
Here is simple configuration part:
route(TEST_ROUTE_WITH_SWITCH);
xlog("L_WARN", "TEST_ROUTE_WITH_SWITCH result $rc\n");
...
route[TEST_ROUTE_WITH_SWITCH] {
$var(a) = "a";
switch ($var(a)) {
case "a":
case "b":
$var(b) = $var(a);
break;
default:
$var(c) = $var(a);
}
# must be optional according to documentation:
# https://www.kamailio.org/wiki/cookbooks/5.3.x/core#return
# > If no value is specified, or a route reaches its end without executing a return statement, it returns 1.
#
# return 1;
}
Log:
WARNING: <script>: TEST_ROUTE_WITH_SWITCH result 0
At the same time if there is no switch-block, return code is 1 as expected:
route[TEST_ROUTE_WITH_SWITCH] {
$var(a) = "a";
}
Log:
WARNING: <script>: TEST_ROUTE_WITH_SWITCH w/o switch-case result 1
kamailio -v
$ ./build/sbin/kamailio -v
version: kamailio 5.7.5 (x86_64/linux) b47500-dirty
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: b47500 -dirty
compiled on 22:02:13 Nov 9 2024 with /usr/bin/gcc 11.3.1
Oracle Linux 9
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.