Hi fellow kamailio users,
I'm playing actually with t_on_branch_failure, in a simultaneous forking
scenario ( lookup("location") returns multiple contacts ).
Any idea on how to get those "on_branch_failure" working ?
Thanks in Advance !
* Test by putting failure_exec_mode:
- at 1 => no branch failure being called, never.
- at 0 => t_relay does not fail if a single branch answers the
transaction, even if all other branches are failing.
* Test by moving the t_on_branch_failure("manage_branch_failure"); line
before or after the lookup("location") or on a _on_branch route to set
it per branch.
- The on_route branch are executed, but never the failure one.
- tried also with failure_exec_mode = 0 or 1.
* Using set_forward_no_connect, I can see in the logs a "Sending to
branch X failed" but no failure route being executed. Without it,
nothing in the logs indicating that the branch has timeout.
* Config extract:
# auto-discard branches from previous serial forking leg
modparam("tm", "failure_reply_mode", 3) # 3 by default
# default retransmission timeout: 30sec
modparam("tm", "fr_timer", 30000)
# default invite retransmission timeout after 1xx: 120sec
modparam("tm", "fr_inv_timer", 120000)
modparam("tm", "reparse_on_dns_failover", 0)
# 1: Allow branches to have a per branch failure route
# 0: t_relay should fail if a branch fail
modparam("tm", "failure_exec_mode", 1)
# Allow locally generated 408 to be forgotten in case a reply is received.
#modparam("tm", "faked_reply_prio", 2000)
# USER location service
route[LOCATION] {
t_on_branch_failure("manage_branch_failure");
if (!lookup("location")) {
....
}
# Let's get back after 2.5s if no 100/Trying received.
t_set_fr(0, 2500);
# set_forward_no_connect();
#t_on_branch("SET_BRANCH_FAILURE");
route(RELAY);
exit;
}
route[RELAY] {
....
if (!t_relay()) {
xlog("L_WARN","$rm|$ci|$fu|$tu|RELAY_FAILED");
sl_reply_error();
}
exit();
}
# set failure route per branch
branch_route[SET_BRANCH_FAILURE] {
xlog("L_WARN","$rm|$ci|$fu|$tu|SETTING_BrANCH_FAILURE_ROUTE");
t_on_branch_failure("manage_branch_failure");
}
# manage failure routing cases per branch
event_route[tm:branch-failure:manage_branch_failure] {
xlog("L_WARN","$rm|$ci|$fu|$tu[$avp(dest_to)]|MANAGE_BRANCH_FAILURE");
}
i was sending some xmlrpc requests to kamailio and got crash.
-- juha
(gdb) where
#0 0x00007f9c465da634 in __GI___libc_free (mem=0x17828c0) at malloc.c:2945
#1 0x00007f9c39e0b797 in collect_garbage () at xmlrpc.c:741
#2 0x00007f9c39e12669 in dispatch_rpc (msg=0x0, s1=0x17828b0 "ams", s2=0x7f9c46903628 <main_arena+8> "`\352w\001")
at xmlrpc.c:2440
#3 0x000000000053c2c0 in do_action (h=0x7ffd17c562d0, a=0x7f9c46355c28, msg=0x7ffd17c563b0) at action.c:1060
#4 0x000000000053ad85 in run_actions (h=0x7f9c46903620 <main_arena>, a=0x17828b0, msg=0x7f9c46903628 <main_arena+8>)
at action.c:1549
#5 0x00007f9c39e0d04b in em_receive_request (orig_msg=0x7f9c45cc43e8, new_buf=0x0, new_len=24651952) at xmlrpc.c:2303
#6 0x00007f9c39e14034 in process_xmlrpc (msg=0x7f9c45cc43e8) at xmlrpc.c:2385
#7 0x00000000004fdce3 in nonsip_msg_run_hooks (msg=0x7f9c45cc43e8) at nonsip_hooks.c:111
#8 0x0000000000549610 in receive_msg (buf=0x0, len=1171014632, rcv_info=0x7f9c3e4b0110) at receive.c:188
#9 0x00000000005cb97a in tcp_read_req (con=0x7f9c3e4b00f8, bytes_read=0x7ffd17c56e64, read_flags=0x7ffd17c56e68)
at tcp_read.c:1418
#10 0x00000000005d0293 in handle_io (fm=0x7f9c3e4b00f8, events=10416, idx=-1) at tcp_read.c:1611
#11 0x00000000005d6bce in io_wait_loop_epoll (h=<optimized out>, t=<optimized out>, repeat=<optimized out>) at io_wait.h:1061
#12 tcp_receive_loop (unix_sock=1183856160) at tcp_read.c:1781
#13 0x00000000004d9df7 in tcp_init_children () at tcp_main.c:4788
#14 0x000000000050736f in main_loop () at main.c:1690
#15 0x000000000041cdbc in main (argc=0, argv=0x0) at main.c:2616
hiii
1.We are writing our own SIP Client to test my Client i am using Kamailio
server
2. So i am trying to map the identities used between Client and Server
3. If can possible can u please help me to the steps has to be follower to
set identities common between Client and Server.
4. Or if u have some test code for client can u share the SIP message dump
for test code so i can re-use the same for configuration my client code.
Thank you
Hi all,
I am trying to use the unixODBC module to connect to MariaDB as a first step and then to test it to connect to MSSQL (please don't blame me on MSSQL...). I am using Kamailio 4.3.5 on CentOS7.2 fully patched. Here info about installed unixODBC:
[root@r5dev-KAM1 ~]# yum list installed | grep unix
unixODBC.x86_64 2.3.1-11.el7 @base
unixODBC-devel.x86_64 2.3.1-11.el7 @base
Which leads me to my possible problem that I can't start Kamailio with db_unixodbc.so because it is giving me this error:
r5dev-KAM1 /usr/local/kamailio/sbin/kamailio[16307]: ERROR: <core> [db.c:203]: db_bind_mod(): Module db_unixODBC not found. Missing loadmodule?
Followed by errors from modules depending on the DBURL are failing as well. Here my modules part:
...
#!define DBURL "unixODBC://root:<passw>@localhost/MARIADB"
...
# Module Path
mpath="/usr/local/kamailio/lib64/kamailio/modules/"
loadmodule "tls.so"
# ----- tls params -----
modparam("tls", "config", "/usr/local/kamailio/etc/kamailio/tls.cfg")
#loadmodule "db_mysql.so"
loadmodule "db_unixodbc.so"
...
I doublechecked that the module was compiled and is present:
[root@r5dev-KAM1 ~]# ls -ll /usr/local/kamailio/lib64/kamailio/modules/ | grep unix
-rwxr-xr-x. 1 root root 184451 28. Apr 08:56 db_unixodbc.so
I tried to check the db.c and db_unixodbc.c but I am not familiar with the c-syntax.
I somehow suspect that the error is related to Linux case sensitivity if db.c is trying to check if "unixODBC" is installed and then trying to match it with the "db_unixodbc.so" but I'm am not sure.
Can someone please give further advice?
Respectfully
Dimitry Nagorny
Trainee
Hello,
How i enable push notification in kamailio.How i proceed to configure the
kamailio configuration file and which kamailio module should i look for?
Thanks