Hello,
I would like to announce that Call for Presentations at Kamailio World
2023 is now open. You can submit your proposal or see more details at:
- https://www.kamailioworld.com/k2023/call-for-speakers/
The 11th edition of the conference returns to Berlin, Germany, during
June 5-7, 2023, as an in-person event. Expect a large range of
participants, developers and community members as well as
representatives of other popular open source VoIP projects such as
Asterisk or FreeSwitch.
Looking forward to meeting many of you there!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - June 5-7, 2023 - www.kamailioworld.com
Hello,
I'm encountering performance issues with Kamailio (5.5.2).
I'm using a custom Kamailio module that loads routing data in memory, using Kamailio shared memory.
This routing data is very large. It can be fully reloaded through a Kamailio RPC command (which is done once each day).
When reloading, two sets of data are maintained, one "loading" and another "current" (the latter being used to handle SIP requests).
When loading of the new data is finished, it is swapped to "current". Then, memory of the old (now unused) data is freed.
I've noticed that when Kamailio is freeing the old data, there is a very significant performance impact on SIP requests.
This is surprising to me, because the SIP requests do not use this old data.
This is not a CPU issue, idle CPU% is at about 99% at that moment.
I'm using the following functions :
- shm_mallocxz
- shm_free
From what I understand, shm_free is actually "qm_shm_free" defined in "src\core\mem\q_malloc.c" (the default shared memory manager being "qm").
I've noticed that there is also a variant shm_free_unsafe ("qm_free"), which does not perform locking.
I'm wondering if the lock could be the cause of my performances issues ?
(But I'm not sure how this could be possible, because although the SIP requests need to access the shared memory allocated, they do not use directly the functions from the share memory manager.)
If the performances issues are causes by the lock, could I use the unsafe version "safely" ? (considering that it is guaranteed that the old data cannot be used by anyone else)
Thanks for your help.
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.
Hello,
https://www.kamailio.org/docs/modules/devel/modules/dialog#dialog.p.dlg_fil… says for dialog.dlg_filter_mode (int)
Set dialog fitering mode, which can specify what dialogs are processed. Its value can be a combination (the sum) of following flags:
1 - do not send keepalives and do not execute timeout function if dialog is not local (if the associated bind address is not a local socket).
Default value is “0”.
As you can see, the definition of 1 is a double negation and there is no definition for 0. What means 0:
- do not send keepalives and do not execute timeout function if dialog is local
- send keepalives and execute timeout function if dialog is not local
- send keepalives and execute timeout function if dialog is local
Hello,
the documentation for tm.t_newtran() says „This is the only way a script can add a new transaction in an atomic way.“ Moreover tm.t_send_reply()
“creates the transaction if it does not exist (executing internally t_newtran()) and sends a stateful reply (executing internally t_reply())”. This
means that only t_newtrans() and t_send_reply() can create transactions in an atomic way.
The documentation of tm.t_relay() does not say whether the function creates a transaction. It also does not say what happens if t_reply() is not
called after t_newtrans().
But for tm.t_set_retr() and tm.t_set_retr() is written “If the transaction is already created (e.g called after t_relay() or in an onreply_route) …”
This suggests that tm.t_relay() does create atomically or not-atomically a transaction.
- What does it mean to create a transaction in a non-atomic way?
- Does tm.t_relay() create a transaction?
Greetings
Dilyan
Hello everybody,
I'm working on a kamailio instance as a basic registrar service and I thought to use db_postgres to connect a postgres service only allowing SSl connections.
I see that that module doesn't provide any parameters to select sslmode and I was wondering if this module actually supports TLS connections.
Does anybody know if this is supported and, if so, how to enable it? or should that support be added into db_postgres module code?
Thank you very much in advance.
BR,
Joel Centelles
RTC Lead Engineer | Care Communications R&D
joel_centellesmartin(a)baxter.com<mailto:joel_centellesmartin@baxter.com> | baxter.com<https://baxter.com/>
[cid:9ee6bcbd-9c30-45ec-bb43-8f439f19f724]<https://baxter.com>
Hi
I'm trying to get dlg.list on a busy system via jsonrpc and xhttp.
I already increased:
tcp_conn_wq_max=2048
tcp_wq_max=20480
modparam("ctl", "binrpc_max_body_size", 2048)
modparam("ctl", "binrpc_struct_max_body_size", 2048)
But it looks like the tcp write queue overflows up at shy over 1MB
reply no matter what I change.
Any ideas what else to toggle?
--
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,
The corex module manages extended flags with functions the setxflag(), isxflagset(), and resetxflag().
tmx.t_flush_xflags() does “flush the extended flags from the current SIP message into the already created transaction. It makes sense only in routing
block if the transaction was created via t_newtran() and the extended flags have been altered since.
It is not needed to execute this function when using t_relay() (or similar tm relay functions, xflags are synchronized automatically in that case).”
The documentation of the tm module does not say anything about extended flags - in particular it does not say that t_relay() synchronizes them.
Moreover, while the corex module utilizes the extended flags, the documentation of tm and tmx do not state, that they depend on the corex module.
So, what are extended flags?
Greetings
Дилян
Hello all! I have a question. In my system we use a series of VoIP
providers to receive external calls to our telephone numbers, for the same
provider we have several registered numbers and we need our providers to
send that information in some way, so far it does not seem that there is a
common way to do it (report the number that was dialed by the person who
made the call). From what I understand, SIP does not have a place for that
information because there are no things like phone numbers in the
specification, my question is, is there a correct place to send such
information, or is it entirely up to each provider? (Now, the most common
is to have in the RURI and To header, the id of the trunk registered in the
uacreg table) I have seen a couple of options that seem to me the most
“correct”: send the information in the To header or send in a custom header.
I really appreciate any help you can provide.
Atenciosamente,
[image: photo] <https://www.techer.com.br/>
*Carlos Escalona*
IT - Development
41 3073-0091 | R 1011
www.techer.com.br
--
O conteúdo desta mensagem é confidencial. Se você não se encontra na lista
de destinatários ou tenha recebido por engano, não a copie, imprima, envie,
ou utilize, de qualquer forma, seu conteúdo. Neste caso, destrua a mensagem
e, por favor, notifique o remetente.
At a quick glance it looks like using socket_workers when the listen parameter uses the interface name does not work. For example:
children = 4
socket_workers=2
listen=udp:10.10.10.10:5060
Gives two listeners on udp:10.10.10.10:5060
children = 4
socket_workers=2
listen=udp:eth0:5060
Gives four listeners on the socket.
Note this is just a quick cursory observation. Is it by design or a design limitation?
Kaufman
Hello,
Fosdem 2023 returns to Brussels, Belgium, for a physical event and I'm
writing to see if there are many people from the community going to the
event and want to organize again the usual RTC/Kamailio dinner on
Saturday evening (Feb 4, 2023).
Each person should pay for himself, likely to be some price increase
comparing with the last one.
If there is enough interest, Torrey will help to book a place to
accommodate us (first choice could be the same restaurant like in the
past, if available).
Reply if you want to join the dinner and say how many other people are
joining you.
Note that RTC Devroom got at this edition a half a day room allocation,
on the afternoon of Feb 5, 2023 (Sunday).
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - June 5-7, 2023 - www.kamailioworld.com