Hi everybody,
I'm just testing Kamailio 5.4.1 with dialog replication over DMQ. This
seems to work very good. Dialogs are replicated without problems.
When I'm restarting one node I would have expected, that all dialogs are
synced again, just like in dmq_usrloc.
But this does not happen. After a restart the nodes dialog-list is empty.
Did I miss somethin? Is there a special parameter that I have to set?
BR, Björn
--
Björn Klasen, Specialist
TNG Stadtnetz GmbH, Network Management (VoIP)
Projensdorfer Straße 324
24106 Kiel
Germany
T +49 431/ 530530
F +49 431/ 7097-555
mailto: bklasen(a)tng.de
http://www.tng.de
Register: Amtsgericht Kiel HRB 6002 KI
Executive board (Geschäftsführung): Dr.-Ing. Volkmar Hausberg,
Sven Schade, Carsten Tolkmit, Dr. Sven Willert
Tax-Id (Steuernr.): 2029047020, VAT-Id (USt-Id): DE225201428
Hi All,
I am facing an issue in understanding how the min_se should be working in
kamailio. As per the SST documentation, it seems like if the min_se is
configured as 500, then any value of Session-Expires OR MIN-SE if lower
than 500, can be responded to by a 422.
However, I strangely see the reverse happening. To investigate further, I
looked in to the ki_sst_check_min() code in the master, and these seems
like a potential issue.
Ref Code: Inside ki_sst_check_min(), there is an if condition like below:
if (sst_min_se < MIN(minse, se.interval)) {
However, shouldn't it be the other way around? ie
if (sst_min_se > MIN(minse, se.interval)) {
because we need to send 422 if the received value(in INVITE etc) is
smaller than the sst configure min_se value?
I also found a different documentation, at
https://git.sgu.ru/oldssu/ex-opensips/blob/cb9df8d59dbb254a9d862569fd5d11f6…
where
the check is as below?
if (sst_min_se > MIN(minse, se.interval)) {
Can someone confirm if this is broken, or my understanding is incorrect?
Regards,
Harneet
--
"Once you eliminate the impossible, whatever remains, no matter how
improbable, must be the truth" - Sir Arthur Conan Doyle
On Mon, May 07, 2018 at 04:44:14PM +0200, Daniel Tryba wrote:
> Sure. Attached. Problem appears to be that the topos query can't find
> callid-totag (from the response).
>
> I'll try the same scenario with the mysql backend to see if it behaves
> different.
Config works fine with mysql as topos backend. So the bug is restricted
to topos-redis.
Hello ,
im using kamailio with two interfaces external and internal.
i need a way either to :
* enable topoh hiding only when outgoing interface is external ( mask contact and Via ip only when ougoing interface is external
* or if it is not possible to enable it only in one direction.i want to know how to configure dynamic(for example in xavp or avp) ip to put in Contact and Via when topoh is enabled.
i see that the 'mask_ip' parameter of topoh module is a string. so we can not set a dynamic value here unfortunately.
Thanks
Hi Kamailio community,
I am running an IPsec server beside Kamailio, so I am interested to know if there is any method to create a SIP listener on a specific port on the fly. I mean, when I create the IPsec SAs through the IPsec server, I ask Kamailio to create a listener/handler for that port too.This case might be very rare, but it is always good to hear community ideas.
Thank you.
Regards,Hossein
Hello!
I'm trying to use app_python module to perform periodic actions.
This is a simple python code
def _update():
while True:
_action()
time.sleep(60)
class noop_handler:
def child_init(self, rank):
return 0
def ksr_request_route(self, msg):
return 1
def mod_init():
# signal.signal(signal.SIGTERM, signal.default_int_handler)
proc = multiprocessing.Process(target=_update)
# proc.daemon = True
proc.start()
ksr.notice('Forked process {} to update\n'.format(proc.pid))
return noop_handler()
After killing kamailio processes with SIGTERM signal (killall kamailio) I
see zombie process.
And if I try to process the signal in daemon mode (see the comments in the
snippet above), I get critical errors in the logs and still see processes:
0(37001) NOTICE: <core> [core/kemi.c:124]: sr_kemi_core_notice(): Forked
process 37002 to update
1(37003) ERROR: <core> [core/udp_server.c:464]: udp_rcv_loop(): recvfrom:[4]
Interrupted system call
Process Process-1:
Traceback (most recent call last):
File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in
_bootstrap
self.run()
File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "/tmp/script.py", line 155, in _update
time.sleep(period)
KeyboardInterrupt
0(37001) ALERT: <core> [main.c:774]: handle_sigs(): child process 37002
exited normally, status=1
0(37001) INFO: <core> [main.c:802]: handle_sigs(): terminating due to
SIGCHLD
1(37003) ERROR: <core> [core/udp_server.c:464]: udp_rcv_loop(): recvfrom:[4]
Interrupted system call
8(37014) CRITICAL: <core> [core/pass_fd.c:277]: receive_fd(): EOF on 4
1(37003) ERROR: <core> [core/udp_server.c:464]: udp_rcv_loop(): recvfrom:[4]
Interrupted system call
So, how I can kill child process by SIGTERM signal?
Greetings,
I've been using the pipelimit module and the pl_check function to control
users rates in my proxy.
if (!pl_check("$var(UserID)", "TAILDROP", "$var(UserRate)")) {
pl_drop();
exit;
}
In this case $var(UserID) is the pipe and $var(UserRate) is the maximum
rate.
The value of the rate is retrieved on every call via query to a DB.
If I change the UserRate value to 0 CPS on the DB calls are not rejected
unless they go over 1 CPS. However, if I restart Kamailio all calls are
correctly rejected.
Why does this happen? Can I change this behaviour?
Cheers,
Duarte
Hi,
Is there a means of appending new branches from config script for a transaction which is already proceeding in the background, without using `tsilo`?
That is to say, I have an async transaction which is resumed in an async worker and is t_relay()’d away to some destination. Meanwhile, I have learned about new destinations for it to try via an incoming registration, and would like to append additional parallel forking branches to that transaction, even though it is already proceeding.
ts_append() does this for me; the issue I have is that it is mediated through a registrar, but I am not a registrar. My registrar is upstream, and my proxy is just a front-end to it. So, in essence, I require something like `tsilo` at a more general level, where contacts can be populated by some other mechanism rather than being learned via callbacks out of `usrloc`.
Is there a way to accomplish this?
Cheers,
— Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/