I have kamailio behind a TLS termination proxy so the sockets are correctly
deduced to be TCP. However the clients only talk TLS to the proxy and are
confused when the top Via header added by Kamailio is TCP. Is there a way
for Kamailio to forcibly pretend its protocol is TLS? Like
advertised_address but "advertised_protocol" instead.
(With pjsip testing: it has a flag use_tls which ignores TCP from Kamailio
and continues to use the persistent TLS transport to proxy. Linphone fails
because it tries to honor TCP in Via and is unable to establish TCP
transport).
BTW I am using t_relay_to_tcp so Kamailio will return traffic to the proxy
as TCP even though the contact addresses specify transport=TLS.
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
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
Hello!
Due to I still experience irregular Kamailio 5.4 crashes (like 1/month)
related to SSL (using websockets and SIPS) I'm wondering, could openSSL
upgrade change the situation?
As of now in CentOS 7 I have 1.0.2k version.
Does anyone have experience to fix crash-related to TLS problems with
openSSL upgrade?
Or maye some tuneup of TCP parameters can help here?My current setup is
quite simple:
children=4
enable_tls=yes
tcp_accept_no_cl=yes
tcp_connection_lifetime=600
tcp_max_connections=998976 # 1000000 - 1024, so we're leaving 1k for system
reserve
tls_max_connections=998976
Number of clients ~ 200 constantly connected to websocket.
--
Best regards,
Igor
Hello,
as I am not a user of dialog variables, I am turning to community to ask
for help testing the current master branch with configurations that make
use of dialog variables and acc dialog-based cdr generation.
With a few reports of issues related to dialog modules and unexpected
crashes, I looked over the code and noticed that the access of the value
for dialog variables was not protected, making them vulnerable of
invalid memory access in case of the variable was updated by another
process or dialog was terminated.
I introduced a couple of new functions to try to cover different use
cases of getting the dlg variable values, dialog management code was not
affected, but given that these commits need to be backported to stable
branch (5.6), I want to get proper feedback from community that things
work fine.
A previous attempt of a simpler fix was not enough, having side effects
to acc module for dialog-based cdr generation, because it was keeping
referenced to many dlg variables at the same time.
In short, it would be appreciated any feedback on testing dialog and acc
with dialog-based cdr generation using git master branch.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Nov 7-10, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/