Hi Gang
We are still having massive issues on how to safely reload kamailio
after config changes when using the dialog module and DMQ.
If there are active dialogues, kamailio corrupts them on a restart even
when using MySQL as dialog backend.
As we use two core nodes for redundancy, I am looking for a way to
gracefully restart kamailio.
I am considering adding some key in a hash table or anything else I
can reload on runtime to indicate to kamailio not to accept any
new calls (effectively rejecting Invites without To-Tag with 503 causing
the registrar or IC peer to hopefully resend the invite to the other
node).
Then wait, until no more dialogues are active, so kamailio can safely be
restarted.
My Issue now: How can I find out, one specific node does not have
any active dialogues?
'kamcmd dlg.stats_active' returns the count of all DMQ synced nodes, not
of the local one.
And suggestions or any other ideas how I can 'reload' the kamailio
config without disrupting active dialogues?
My last resort would be to look into the database:
modparam("dialog", "h_id_start", -1) # Use server_id
modparam("dialog", "h_id_step", 2)
So odd/even H_ID should tell me the number per node. But I see a lot of
orphan dialogues hanging around in the database not being cleaned so I
guess that will not be reliable at all.
Yes, I know I will get the question: 'Why do you need to restart
kamailio that often'.
We have started production on our kamailio based TSP platform. And of
course, despite a LOT of testing beforehand, there is always some issue
that pops up. At the moment, I have to implement a config change about
once or twice a week to fix some new minor issues.
I hope, somewhen in the future we will hopefully have a stable config
which will last for several months, but at the moment this is the
situation.
--
Mit freundlichen Grüssen
-Benoît Panizzon- @ HomeOffice und normal erreichbar
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web http://www.imp.ch
______________________________________________________
Hello,
What is the best way to change the calling number to a random number (based on specific pattern, like number of digits for example) in an invite packet without using a database.
So the scenario is :
* receive an invite packet from certain source
* change the calling number
* send back the invite packet including the new calling number to the original source.
Regards,
Ali Taher
Hello All
I am handling 302 response in the failure route and when receiving 302
response in kamailio, it's not going into the failure route , kamailio just
executing the onreply route when 302 response are received.
A few days ago the same code with failure route worked but now it does not.
i dont know why kamailio is not executing a failure route from where we can
redirect calls to another server.
code snippet
route[RELAY]{
t_on_reply("MANAGE_REPLY");
t_on_failure("MANAGE_FAILURE");
t_on_branch("MANAGE_BRANCH");
if (!t_relay()) {
sl_reply_error();
}
exit;
}
failure_route[MANAGE_FAILURE] {
if (t_is_canceled()) {
exit;
}
if (t_check_status("302")){
get_redirects("*");
$ru= $T_rpl($sel(contact.uri));
route(RELAY);
}
}
kamailio version : 5.6.4
Please suggest if I am doing anything wrong.
--
Regards,
*Devang Dhandhalya*
--
*Disclaimer*
In addition to generic Disclaimer which you have agreed on
our website, any views or opinions presented in this email are solely those
of the originator and do not necessarily represent those of the Company or
its sister concerns. Any liability (in negligence, contract or otherwise)
arising from any third party taking any action, or refraining from taking
any action on the basis of any of the information contained in this email
is hereby excluded.
*Confidentiality*
This communication (including any
attachment/s) is intended only for the use of the addressee(s) and contains
information that is PRIVILEGED AND CONFIDENTIAL. Unauthorized reading,
dissemination, distribution, or copying of this communication is
prohibited. Please inform originator if you have received it in error.
*Caution for viruses, malware etc.*
This communication, including any
attachments, may not be free of viruses, trojans, similar or new
contaminants/malware, interceptions or interference, and may not be
compatible with your systems. You shall carry out virus/malware scanning on
your own before opening any attachment to this e-mail. The sender of this
e-mail and Company including its sister concerns shall not be liable for
any damage that may incur to you as a result of viruses, incompleteness of
this message, a delay in receipt of this message or any other computer
problems.
Just checking to see if this is the designed behavior. The SL module will attempt to match ACKs for stateless replies and handle them (absorb them?).
The question I have is that it looks as though this ACK gets counted as dropped by the core.drop_requests from the KEX module. Tested using this config:
#!KAMAILIO
loadmodule "pv"
loadmodule "sl"
loadmodule "xlog"
loadmodule "kex"
loadmodule "corex"
loadmodule "ctl"
modparam("sl", "bind_tm", 0)
route {
xinfo("[$ci] $rm Request. Src:[$si:$sp] RURI:[$ru] To:[$tu] From:[$fu]\n");
sl_send_reply("404", "Not Found");
}
event_route[sl:filtered-ack] {
xnotice("sl:filtered-ack ACK [$ci] to local reply absorbed\n");
}
Then validate by kamcmd stats.fetch core:drop_requests
Is this the designed and "correct" behavior?
Kaufman