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!
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
I am not sure what I have to look for and I didn't change the initial
config files (except for the 666 mode for kamailio_rpc.sock).
As far as Kamailio is concerned the socket files files do exist:
root@deb11srv1-kamailio:/var/www/siremis-5.3.x# ls -l /run/kamailio/
insgesamt 4
srw------- 1 kamailio kamailio 0 7. Jun 11:37 kamailio_ctl
-rw-r--r-- 1 kamailio kamailio 5 7. Jun 11:37 kamailio.pid
prw-rw---- 1 kamailio kamailio 0 7. Jun 11:37 kamailio_rpc.fifo
srw-rw-rw- 1 kamailio kamailio 0 7. Jun 11:37 kamailio_rpc.sock
When I look at siremis/log/ERR.log I repeatedly get:
'06/07/2022','09:43:29','ERR','ErrorHandler','socket_bind(): unable to
bind address [2]: No such file or directory',''
This disappears when I put the local file socket in /tmp:
<UnixSockLocal name="unixsocklocal" address="/tmp/siremis_rpc.sock"
timeout="3.0"/>
which was probably done this way in previous versions of Siremis (before
systemd private tmp config). In this case I get no error messages, but
still no answers (as expected). The next step seems to get UnixSockLocal
right.
The schedule for Kamailio World Conference Online 2022 has been
published on the event website:
- https://www.kamailioworld.com
The event spans over two days, September 7-8, 2022, with presentations
and open discussion sessions during 12:50-17:00UTC. With the main target
to share the knowledge and connect the community, the conference has
presentations covering use of Kamailio for 5G services, NAT traversal
and integration with RTPEngine, TLS with WolfSSL, end to end testing
testing, controlling SIP message content from KEMI and resources
management for scalability. It is a good balance between established and
new speakers at this edition of Kamailio World Conference.
There is no registration required to join the event, the sessions will
be presented in a live video conferencing room streamed to YouTube
KamailioWorld Channel. A text chat room will be made available for
posting questions and background discussions.
Book the dates in your agenda and prepare for another amazing Kamailio
World Conference! Keep the eye on the event website for updates!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hello!
After some time, Kamailio stops processing incoming messages.
slow timer too slow: overflow messages appear in the log (I suspect that
the problem is related to the rtimer module)
Aug 29 14:19:17 kamailio[11320]: 2(11320) ERROR: {1 10 OPTIONS
2b45547f33f5203f-4091(a)10.10.10.10} <core> [core/mem/q_malloc.c:430]:
qm_malloc(): qm_malloc(0x7f163b9f9010, 960) called from core:
core/rvalue.c: rval_new_empty(246), module: core; Free fragment>
Aug 29 14:19:17 kamailio[11320]: 2(11320) ERROR: {1 10 OPTIONS
2b45547f33f5203f-4091(a)10.10.10.10} <core> [core/rvalue.c:253]:
rval_new_empty(): could not allocate private memory from pkg pool
Aug 29 14:19:17 kamailio[11330]: 12(11330) WARNING: <core> [core/timer.c:936]:
timer_handler(): slow timer too slow: overflow (62671 - 61648 = 1023)
Aug 29 14:19:17 kamailio[11320]: 2(11320) ERROR: {1 10 OPTIONS
34618af41c3866bc-16408(a)10.10.10.20} <core> [core/mem/q_malloc.c:297]:
qm_find_free(): qm_find_free(0x7f163b9f9010, 960); Free fragment not found!
Aug 29 14:19:17 kamailio[11320]: 2(11320) ERROR: {1 10 OPTIONS
34618af41c3866bc-16408(a)10.10.10.20} <core> [core/mem/q_malloc.c:430]:
qm_malloc(): qm_malloc(0x7f163b9f9010, 960) called from core:
core/rvalue.c: rval_new_empty(246), module: core; Free fragment no>
Aug 29 14:19:17 kamailio[11320]: 2(11320) ERROR: {1 10 OPTIONS
34618af41c3866bc-16408(a)10.10.10.20} <core> [core/rvalue.c:253]:
rval_new_empty(): could not allocate private memory from pkg pool
Aug 29 14:19:17 kamailio[11330]: 12(11330) WARNING: <core> [core/timer.c:936]:
timer_handler(): slow timer too slow: overflow (62671 - 61648 = 1023)
Aug 29 14:19:18 kamailio[11320]: 2(11320) ERROR: {1 10 KDMQ
1c18959d07113951-203309(a)10.10.10.30} <core> [core/mem/q_malloc.c:297]:
qm_find_free(): qm_find_free(0x7f163b9f9010, 960); Free fragment not found!
Aug 29 14:19:18 kamailio[11320]: 2(11320) ERROR: {1 10 KDMQ
1c18959d07113951-203309(a)10.10.10.30} <core> [core/mem/q_malloc.c:430]:
qm_malloc(): qm_malloc(0x7f163b9f9010, 960) called from core:
core/rvalue.c: rval_new_empty(246), module: core; Free fragment no>
Please point me out where the source of the problem could be.
version: kamailio 5.6.1 (x86_64/linux)
--
BR,
Denys Pozniak
Hi,
I wasn’t able to find an answer on the list previously, nor any trail of breadcrumbs in the docs: do any of the existing HTTP client modules support HTTP/2?
— 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/
Hi,
I'm using rtpengine for RTP proxying with kamailio.
I use it just for audio.
But eventually some terminal reinvites offering video.
I don't want to refuse the request but just disable RTP proxying for video
as my employer has limited bandwidth and want to reserve it only for audio.
So I checked the rtpengine module documentation but it seems there is no
way to restrict RTP proxying to be performed only for m=audio.
I tried some things like
replace_body("^m=video [0-9]+", "m=video 0");
and
subst_body('/^m=video [0-9]+ /m=video 0 /');
and
msg_apply_changes();
but still the RTP proxying for video is set up.
Any hints on how to solve this?
Ok so making progress but still a little confused, hopefully this forum can shed some light on this behaviour.
Using the hints provided (thanks all so far) and the latency logging from the cookbook I have managed to isolate the issue down to RTPengine introducing the delay.
INFO: app_python3 [apy_kemi.c:1820]: sr_apy_kemi_exec_func(): alert - action KSR.rtpengine.rtpengine_manage(...) took too long [1003089 ms] (file:(null) func:(null) line:252)
What is confusing is, I don't believe this block should be being called.
when the BYE is triggered, it routes to ksr_route_withindlg
# handle requests within SIP dialogs
if self.ksr_route_withindlg(msg)==-255 :
return 1
from within the ksr_route_withindlg a check is done to see if any RTPengine work needs doing
# Handle requests within SIP dialogs
def ksr_route_withindlg(self, msg):
if KSR.siputils.has_totag()<0 :
return 1
# RTPEngine handling for UPDATES & reINVITES with sdp
if self.ksr_route_rtpengine(msg) == -255:
return 1
RTPengine is configured in a way to step in whenever there is an SDP present based on Content-Type: application/sdp
# RTPengine handle anything with SDP
def ksr_route_rtpengine(self, msg):
if KSR.textops.has_body_type("application/sdp"):
KSR.rtpengine.rtpengine_manage(
"RTP/AVP replace-session-connection replace-origin ICE=remove")
return 1
What I can understand is why is this being called and erroring introducing the delay when there is no Content-Type: application/sdp in a BYE ???
As a quick fix I have put this in which stops the problem (I am sure there is better ways to handle this but for now this works in a DEV environment)
def ksr_route_rtpengine(self, msg):
if KSR.is_BYE():
return 1
if KSR.textops.has_body_type("application/sdp"):
KSR.rtpengine.rtpengine_manage(
"RTP/AVP replace-session-connection replace-origin ICE=remove")
return 1
Can anyone see why this would occur? Why is sr_apy_kemi_exec_func(): alert - action KSR.rtpengine.rtpengine_manage(...) even being called for this BYE ? when there is no Content-Type: application/sdp
Lewis