Hello,
Kamailio SIP Server v5.5.5 stable release is out.
This is a maintenance release of the stable branch 5.5 that
includes fixes since the release of v5.5.4. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.5.x. Deployments running previous v5.5.x
versions are strongly recommended to be upgraded to v5.5.5.
Note that 5.5 is the second last stable branch, still officially maintained
by Kamailio development team. The latest stable branch is 5.6, with
v5.6.1 being release out of it.
For more details about version 5.5.5 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2022/09/kamailio-v5-5-5-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Oct 10-13, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hi,
Instructions for upgrading from 5.5 to 5.6 don't include instructions for
the MySQL database schema changes:
http://www.kamailio.org/wiki/install/upgrade/5.5.x-to-5.6.0
Where can I get this information? It was always published in the past.
Best regards,
Leonid Fainshtein
Hello,
I am considering to release Kamailio v5.5.5 soon, likely on Monday or
Tuesday next week (Sep 19 or 20, 2022). This is the usual heads up
notification to see if anyone is aware of issues not yet reported to bug
tracker and if yes, do it as soon as possible to give them a chance to
be fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - Online
Oct 10-13, 2022 (Europe Timezone)
* https://www.asipto.com/sw/kamailio-advanced-training-online/
Hello,
We’ve been running Kamailio 5.5.0 for a while now and recently ran into an issue where the application buffer would get full and Kamailio has a lot of difficulty keeping up with REG requests. This severely impacted Kamailio’s ability to perform and resulted in many REG timeouts.
Running ‘watch netstat -ulpn’ revealed the buffer issue.
We usually run the production system at log level INFO (2) and had not ran into any issues in the past.
When the buffer issue occurred and after some testing, we discovered that changing the log level to NOTICE (1) was sufficient to bring the system back into operational status.
For example, at log level INFO (2) we seem to achieve ~150-200 REG/s while at log level NOTICE (1) we reach ~500-700 REG/s.
I did find this article in the wiki and tried using the “-“ in front of the log path but this didn’t seem to help.
http://www.kamailio.org/wiki/tutorials/3.2.x/syslog
Even writing the logs directly to our external log server and preventing them from being written to the local disk doesn’t seem to alleviate the issue when the log level is set to INFO (2).
Does anyone have any experience with this or have any suggestions? We are finding it difficult to scale as a result of this issue.
Thank you in advance.
Amit
Hi List
If I'm correctly reading the documentation, all avp variables should
exist during a transaction until it's final ACK.
ACK, PRACK and CANCEL are part of that transaction. But I seem not
to be able to access the content of avp during those messages.
Strangely during MANAGE_REPLY of the 487 following a cancel, the avp
are present so that 487 clearly is part of the transaction.
What am I missing?
(Yes, I am still working on mirroring al username (phone number)
translations and filtering unwanted header to prevent information
leakage, any hints welcome if there is a simpler way to achieve this)
--
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
______________________________________________________
Hi team,
I have added a few lines more in the SCA module, So if I want to compile
again only the sca, So what command I need to use?
Thanks and Regards,
Satyaprakash.
--
* <https://www.ecosmob.com/>
*
*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.
Hello,
Kamailio SIP Server v5.4.9 stable release is out.
This is a maintenance release of the old stable branch, 5.4, that
includes fixes since the release of v5.4.8. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.4.x. Deployments running previous v5.4.x
versions are strongly recommended to be upgraded to v5.4.9 or even
better to v5.5.x or 5.6.x series.
For more details about version 5.4.9 (including links and guidelines to
download the tarball or from GIT repository), visit:
* https://www.kamailio.org/w/2022/09/kamailio-v5-4-9-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Note: the branch 5.4 is an old stable branch, v5.4.9 being the last
planned release out of it, to mark the end of official maintenance.
The maintained stable branches are now 5.5 and 5.6, at this time with
v5.6.1 being the latest stable release.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hello,
I am planning to release a new version from branch 5.4, respectively
5.4.9, sometime soon, maybe on Friday or Monday.
Unless a major regression comes out with this release, this is going to
be the last official packaged version from branch 5.4. The latest two
stable branches 5.5 and 5.6 will be maintained further.
As usual, if anyone is aware of issues not yet reported to bug tracker
or missing backports, report them in order to try to get the fixes in
this release.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
I am aware of, and have used sucessfully, the %s substitution option in redis_cmd, however when trying to do 4 values I'm getting a parse error about too many arguments. A review of the module's source appears to indicate that there is a hard limit of 3 substitution values when using this method.
Is there a suitable workaround anyone has for this to enable insertion of values with spaces in them that won't get interpreted by Kamailio itself? Escaping the value, even by using $_s to eval a dynamic string, ends up with Kamailio itself apparently trying to parse the escape and breaking things further.
Thanks!
Confidentiality Notice: This e-mail, and any attachment to it, contains privileged and confidential information intended only for the use of the individual(s) or entity named on the e-mail. If the reader of this e-mail is not the intended recipient, or the employee or agent responsible for delivering it to the intended recipient, you are hereby notified that reading this e-mail is strictly prohibited. If you have received this e-mail in error, please immediately return it to the sender and delete it from your system.
Hello,
a new feature has landed to Kamailio devel version, bringing in more
flexibility for preprocessing of the kamailio.cfg file.
It is about #!ifexp, which allows to evaluate an expression created with
defined IDs, string and number values. Based on evaluation result, being
true or false, parts of the config file can be enabled or disabled.
An extensive number of operators can be used in expressions, such as: +,
-, *, /, ==, !=, <, >, <=, >=, ||, &&, etc. The evaluation is done using
snexpr (https://github.com/miconda/snexpr), which was embedded inside
Kamailio code.
Here are some simple kamailio.cfg examples:
#!ifexp KAMAILIO_VERSION >= 5006000
loadmodule "tlsa.so"
#!else
loadmodule "tls.so"
#!endif
#!ifexp MOD_xlog && (OS_NAME == "darwin")
xlog("running on MacOS\n");
#!endif
Documentation and more examples can be found on the wiki portal at:
- https://www.kamailio.org/wikidocs/cookbooks/devel/core/#ifexp
Testing would be appreciated, feedback can be addressed to sr-users
mailing list!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hello,
kamailio.org system needs a reboot and it will become unavailable for a
short time frame about 08:00UTC (20 min from now). Website, mailing
list, wiki, and a few other web services will be affected.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Hi,
When a transaction suspended by evapi_async_relay() is resumed, in which child processes is it resumed? Is it in the dedicated “EVAPI RELAY” workers defined by the ‘workers’ modparam to ‘evapi’?
If this is so, just trying to work out the concurrency implications and the optimal size for the worker pool for maximal throughput. It sounds, at first glance, like it should be roughly similar to the sizing considerations for listener children. Thoughts welcome!
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/
Hi There,
It's been a few years since I joind the group and I have watched and learnt and played but, I am stuck...
I have searched hi & low but I can't seem to find what I am looking for.
Is is do-able to have SIP Phones proxy through Kamailio/RTPengine and have the connection relayed to a freeswitch system where all the work is done.
I need to have Kamailio act as proxy ONLY - no need to do AUTH, and I need Kamilio to have the RTPEngine have the media but only as proxy.
I have FreeSWITCH doing all the IVR/VM/CONF/etc....
So:
1) The SIP Phone sends everything to the Kamailio system, the Kamailio system will relay everything to the FreeSWITCH system (requests and replies)
2) The FreeSWITCH system will send everything to the Kamailio system which will relay everything back to the SIP Phone (requests and replies)
3) The SIP phones are behind NAT
4) The Kamailio and FreeSWITCH systems are on the public internet with public IP addresses
I have found a few sample kamailio.cfg files but, I can get REG to make it through but no SUBCRIBE wont get NOTIFYs back, etc...
I seem to get parts but not all the way.
If this is doable, and I assume it is, is there a config file someone can share with me? or point me to?
Jerry
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.
Hey there!
Kamailio is being used between CPE (customer) and IC.
Towards IC we use e164 numbers
Towards customers we use 'localized' numbers and also ensure that
Privacy is enforced by setting usernames to 'Anonymous' if Privacy is
set to id, remove unwanted header etc.
I realized, that I have to apply the same translations to replies and
re-invites to make sure, they do not leak unwanted information
towards the customer.
But when I try to set:
onreply_route[MANAGE_REPLY]
$fU,$rU,$tU within MANAGE_REPLY
I get: do_action(): bad uri
Just removing unwanted header works fine it looks as it's only changing
the usernames that causes this issue.
What would be the proper was to change usernames in replies?
Is there any module which would apply the same user translations as
done with the invite to all replies and re-invites?
--
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
______________________________________________________
Hi sr-users,
The TLS traffic generation scripts are online here:
* SIP library - fork of sippy/b2bua - use main-async branch
https://github.com/space88man/b2bua
This branch is an async refactoring of sippy; the master branch of the repo
is the regular sync+elperiodic version.
* runtime UA generation scripts:
https://github.com/space88man/multiuac-tester
This repo contains the TLS-client transport (sippy out-of-the-box supports
UDP); also gratuitously uses the match/case syntax for fun (so needs Python
3.10)
* no documentation: the scripts/t_register.py and scripts/t_phone.py should
give you an idea how to create UACs.
The script in the talk is scripts/t_register.py - creates SIP UACs that sit
in an infinite loop and do REGISTER and keepalive ('\r\n\r\n').
Disclaimer: this is not a SIP-scenario framework like SIPp; SIP messages
are programmatically created using sippy; e.g., the test scenario does not
need to handle RTP media so the SDP body is a hardcoded string.
Regards
S-P
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
Hi Joel
Did you manage to offload TLS SSL on the load balancer side ?
I tested it before on AWS and the calls were working well.
Wondering if this makes any issues like you said with headers ?
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
Hello,
I have two slightly related questions, and would appreciate any advice
on the matter.
The first one is about dynamic `rtimer` (or `timer`) intervals. In the
route, called by the timer process there is a request to a neighbor
service. In the response there's a set of new destinations for
in-memory dispatcher list and some TTL value. And I need to adjust the
timer interval based on this TTL (e.g., timer interval may be 10 min,
but TTL may suggest to request destinations every 5 min since
now). Also, the first call to the timer route should be at T+0, not at
T+interval. As far as I can tell from `rtimer` module implementation,
that's unfeasible. But maybe I'm missing something? Any suggestion on
how one should implement something like this?
The second one is about updating in-memory dispatcher list. After
receiving and parsing new destinations in the timer route, the
previous in-memory destinations must be replaced by these new
destinations. The naive way of doing so would look something like:
`dispatcher.reload` to clear previous list, then a series of
`dispatcher.add` calls to add new destinations. But a failed `add`
call may lead to wrong in-memory destinations set. As far as I
understand I should start using some transaction-aware database for
dispatcher destinations, and literally write a transaction. Are there
any other ways to solve this?
Hello,
I can’t find rpm packages of kamailio 5.6.x on rpm.kamailio.org, do you know if it’s planned to build them in the future? I’m available if some help/testing is needed.
Thanks,
Riccardo Villa
--
--
NOTICE: This electronic mail transmission may contain confidential
information and is intended only for the person(s) named. Any use, copying,
or disclosure by any other person is strictly prohibited. If you have
received this transmission in error, please notify the sender via e-mail.
Hi Community,
I have set up a SBC with Kamailio.
I am testing voice call from external network to my network and voice call from my network to external network.
When I send SIP messages to external network, I want to hide Via and Record-Route headers but when I receive replies from the external network I want to restore these Via and Record-Route headers to my network.
How to store and restore these headers in Kamailio configuration ?
Could you help on this?
Thanks
Anthony Blandin
Hello
I have a SIP INVITE with a RURI like this:
sip:31427;phone-context=stripped@IP
How can I remove the phone-context parameter here? In reality it's a very long string and the next hop (an SBC) is complaining about it, but I don't need it anyway.
Regards
Maarten
Hello,
I’m quite new user with kamailio (heard first time about it a year ago and joined the list yesterday) and now wondering how the xavp_dst should work.
I had read from the documentation that
”The first XAVP is the current selected destination.”
I use ds_select_dst with alg 13. And my kamailio version is kamailio 5.5.3 (x86_64/linux)
So when my dispatcher list is like (I have also tried to differ the priority value like 10 and 1, but doesn’t make difference)
10 sip:1.2.3.4;transport=tcp 10 1 type=type1
10 sip:4.3.2.1;transport=tcp 10 1 type=type2
If one of the destinations fails (dx/ip), and it happens to be the one with higher priority or the one that just gets higher position in the dispatcher list if the prio Is equal.
My xavp_$xavp(dsdst=>attrs) get null value. And, if I try to seek $(xavp(dsdst[0]=>attrs) or $(xavp(dsdst[1]=>attrs) I also got nothing.
If both destinations are up with equal priority, it selects them with round-robin, and the xavp_$xavp(dsdst=>attrs) has the type value of the selected destination as expected, also the $(xavp(dsdst[0]=>attrs) or $(xavp(dsdst[1]=>attrs) contains the destinations so that the selected is 0 and the other is at position 1.
The $du is updated as I expect so if one fails the other one is selected always, why the xavp_dst isn’t working same way, or am I missing something?
If needed I’ll try to provide more information,
Thanks already in advance
-Pyry
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
Hi,
I'm trying to configure kamailio to register users over websockets, but i am not able to find any working configuration around, am new to kamailio.
as far as i understand now, xhttp will handle the HTTP GET requests, i am not sure how to configure xhttp port number, cannot find parameters in the module manual, i found multiple sample configs but none of them is working, am using JsSip client.
if someone can guide me with a link to a working config and that i can start from.
Hello,
I am trying to load app_python.so module in kamailio 5.6 and I am getting the following error, under debian bullseye:
ERROR: <core> [core/sr_module.c:573]: load_module(): could not open module </usr/lib/x86_64-linux-gnu/kamailio/modules/app_python.so>: /usr/lib/x86_64-linux-gnu/kamailio/modules/app_python.so: undefined symbol: LOG_
The app_python.so file exists, under that path. Same ERROR for app_python3.so.
I have tried updating some modules's Makefile LDFLAGS but didn't work so far; still searching. Any ideas?
Thank you,
Stefan
Hello!
It was accidentally noticed that the variable $fU gets the user part of
userinfo SIP URI (although it is logical and described in the document
RFC2543).
I got message below and my spam filter based on $fU passed it inside the
network, as $fU was test
From: <sip:test:test@1.1.1.1>;tag=123456
Sure I can filter it through a regular expression, but maybe it's worth
adding another core variable with the userinfo value?
SIP-URL = "sip:" [ userinfo "@" ] hostport
url-parameters [ headers ]
userinfo = user [ ":" password ]
--
BR,
Denys Pozniak
Hello,
For non-commercial support please address our sr-users list (added to CC).
Please look at the uac module, there a function uac_auth() for this particular scenario with example cfg.
https://kamailio.org/docs/modules/5.5.x/modules/uac.html#uac.f.uac_auth
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com<https://gilawa.com/>
From: Keshav Kaushik <kdkaushik(a)gmail.com>
Sent: Sunday, August 28, 2022 1:34 PM
To: Henning Westerholt <hw(a)gilawa.com>
Subject: kamailio Trunk authentication
Respected Sir,
I am new to kamailio so not very familiar with config PV’s and transformations etc.
I have successfully authenticated the Twilio SIP phone via ACL.
But I also willing to authenticate the Twilio SIP via username and password.
For doing this I plan to modify the “proxy-authentication” header as blow:
if (is_present_hf("Proxy-Authorization")) {
$nonc=$sel(proxy-authorization.nonce);// not working
$has="kamailio:$ar:SdE-----------ADVpa";
$ha1=$(has{s.md5});
hat="$aa:$adu";
$ha2=$(hat{s.md5});
$resp="$HA1:$nonc:$HA2";
append_hf('Proxy-Authorization: Digest username="kamailio", realm="$ar", nonce="$nonc", uri="sip:+1650ZZZZZZ@XX.YY.7.195", response="$(resp{s.md5})"');
}
remove_hf("Proxy-Authorization");// remove original header
When I save the config file and restart kamailio, it does not start, may be due to some error in code.
Can you please help in authentication of a SIP trunk using user/passowrd.
Thanks in advance
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows
Thanks Alex and Kaufman,
As you said there is an element of db blocking for accounting, but I don't see the same impact when the INVITE goes through and sets the accounting flags.
I will look to disable accounting and see if it improves things. If not, I will have a look at benchmark to try and pin it down. It is not causing any noticeable delay in the clearing down of the call to the end users but I want to try and optimise the cleardown if possible.
Once I have tested this I will report back. Thanks for your assistance.
Lewis
I have a situation where I am seeing intermittently Kamailio having delays when relaying the BYE received from an external party
This is only affecting the BYE
We have 6 Kamailios stood up
3 linked to the SIP Providers (SBC)
3 for Registration (REG)
Language KEMI | Python
version: kamailio 5.5.1 (x86_64/linux) 278772-dirty
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 278772 -dirty
compiled with gcc 9.3.0
Simplified Flow
PSTN >>>> Kamailio SBC >>>> FREESWITCH >>>> Kamailio REG >>>> SIP DEVICE
SIP DEVICE >>>> Kamailio REG >>>> FREESWITCH >>>> Kamailio SBC >>>> PSTN
This happens on all of them intermittently when receiving the BYE from either a SIP trunk or a SIP Device Publicly, it can take upto 1s to pass this onto the next hope (Freeswitch) on the local network. All BYEs passed between the local network relay in fractions of a second. All BYEs passed out of the KAMAILIO SBC or KAMAILIO REG to their respective public enpoints relay in fractions of a second but BYEs received from public on advertised address take upto 1s for Kamailio to process and relay.
i.e
PSTN >>> BYE >>>> KAMAILIO SBC (kamailio will sometimes take upto 1 second to relay this on to other kit on the internal solution. Freeswitch etc)
SIP DEVICE >>> BYE >>>> KAMAILIO REG (kamailio will sometimes take upto 1 second to relay this on to other kit on the internal solution. Freeswitch etc)
I am basing these timings on SNgrep and PCAP traces from homer.
Does anyone have any hints and tips on how I can debug this issue. I have enabled debug logging and replicated the issue but it doesn't show anything from what I can see as to why there is delays.
Thanks in advance
lewis
Hello,
I'm trying to get the dispatcher status from kamailio through the UDP
datagram but for some reason, it is getting just part of the output. Is
there any buffer that I have to increase to get the complete output?
command used:
```
echo '{"jsonrpc": "2.0", "method": "dispatcher.list", "reply_name":
"kamailio_reply_fifo", "id": 1}' | nc -u 192.168.1.1 8090
```
kamailio related config:
modparam("jsonrpcs", "fifo_name", "/tmp/kamailio_request.fifo")
modparam("jsonrpcs", "transport", 6)
modparam("jsonrpcs", "fifo_mode", 0600)
modparam("jsonrpcs", "fifo_user", "kamailio")
modparam("jsonrpcs", "dgram_socket", "udp:MY_INTERNAL_IP_ADDR:8090")
modparam("jsonrpcs", "dgram_timeout", 2000)
modparam("jsonrpcs", "pretty_format", 1)
output:
[image: image.png]
Thanks
Hi,
I'm using Kamailio 5.3 and I am interested in doing call forwarding. I am
interested in having a user "alice" bypass the SIP REGISTER step and have
their SIP INVITE request/call forwarded to another SIP user "bob" (who,
let's just say for now is within the same domain, so accessible by the same
SCSCF and if it makes things simpler, let's say that bob went through the
register step).
In the PCSCF configuration, I've tried doing something like this:
route {
route(TEST)
...
}
route[TEST] {
$ru = "sip:bob@domain.com"
if (!t_relay("scscf.domain.com",6060)) {
sl_reply_error();
}
exit;
}
Instead of $ru, I've also tried using uac_replace_to, providing both the To
and URI fields with Bob's SIP URI.
When I try using the $ru, the S-CSCF still seems to use Alice's R-URI
instead of Bob's.
When I try using uac_replace_to, I get a 403 error saying that I need to
register with the S-CSCF first.
Am I going about this the correct way? Thank you.
Derek
Hi everyone,
I'm trying to build tlsa module on redhat 7.9 server.
But I'm encountering the following compile errors.
Any ideas on how I can deal with this?
CC (gcc) [M tlsa.so] tls_util.o
CC (gcc) [M tlsa.so] tls_domain.o
CC (gcc) [M tlsa.so] tls_locking.o
CC (gcc) [M tlsa.so] tls_rand.o
CC (gcc) [M tlsa.so] tls_map.o
CC (gcc) [M tlsa.so] tls_cfg.o
CC (gcc) [M tlsa.so] tls_select.o
CC (gcc) [M tlsa.so] tls_dump_vf.o
CC (gcc) [M tlsa.so] tls_init.o
CC (gcc) [M tlsa.so] tls_bio.o
CC (gcc) [M tlsa.so] tls_config.o
CC (gcc) [M tlsa.so] tls_server.o
CC (gcc) [M tlsa.so] tls_rpc.o
CC (gcc) [M tlsa.so] tls_ct_wrq.o
CC (gcc) [M tlsa.so] tlsa_mod.o
CC (gcc) [M tlsa.so] tls_verify.o
LD (gcc) [M tlsa.so] tlsa.so
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(deflate.o):
relocation R_X86_64_32S against hidden symbol `_length_code' can not be
used when making a shared object
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(inflate.o):
relocation R_X86_64_32S against hidden symbol `zcfree' can not be used when
making a shared object
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(inftrees.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
shared object; recompile with -fPIC
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(trees.o):
relocation R_X86_64_32S against hidden symbol `_length_code' can not be
used when making a shared object
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(zutil.o):
relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making
a shared object; recompile with -fPIC
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(crc32.o):
relocation R_X86_64_32 against `.rodata' can not be used when making a
shared object; recompile with -fPIC
/usr/bin/ld:
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../lib64/libz.a(inffast.o):
relocation R_X86_64_32S against `.rodata.str1.1' can not be used when
making a shared object; recompile with -fPIC
/usr/bin/ld: tlsa.so: version node not found for symbol
SSLeay_version(a)OPENSSL_1.0.1
/usr/bin/ld: failed to set dynamic section sizes: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [tlsa.so] Error 1
make[1]: *** [modules] Error 1
Hello,
I'm receiving calls which I forward to a server I KNOW will reply with a
302. When I get that 302, I parse some information and then t_reply(302)
the originator. The 302 I create needs to have it's own contact header
which I am adding with append_to_reply(). That works great. BUT the contact
header from the original 302 is hanging around. Now I have two contact
headers :(
How can I get rid of the original 302's contact header? remove_hf() doesn't
work in this context since it's a reply. So I need a kind of
"remove_header_from_reply()".
Thanks,
Brett
Hello Kamailio Team!
I've tried following the documentation for http_async_query() with
suspend=1 and not getting results I'm expecting. Perhaps I'm
misunderstanding the documentation.
Basically I'm performing a http_async_query() with suspend set to 1 and a
"route_name" set to HTTP_REPLY.
When my query executes, it appears that Kamailio stops processing in that
route block, suspends, and then when a reply is available, it continues in
HTTP_REPLY. That makes sense. I pull the return value and set some $var and
$avp. When I get to the end of the HTTP_REPLY block, I'm EXPECTING it to
RESUME FROM the suspended location from the original route block, which it
does NOT seem to do. Is that expected?
For what it's worth, I did test just continuing my route logic in
HTTP_REPLY and just forgetting about the original route block (moved all
the remaining processing logic into HTTP_REPLY) However, existing $avp and
$vars that were already set within the transaction were not set. So that's
not possible either.
I'm pretty sure there is a right way to do this without getting hacky. Can
someone help me out?
And yes, I know what I'm trying to do sounds like sync, but I want async to
handle high volume and the potential for my external URL to lightly block.
I believe the right way to do this is with async+suspending.
Thank you,
Brett
Hello all,
Lately I faced an issue that Kamailio is not responding to some invite packets coming from SBC. When investigating I found that these packets exceeds MTU size.
Could this be the issue? Knowing that in Kamailio configuration I have a condition on is_method("INVITE"). Could be that in case of packet exceeding MTU size it's not considered as invite packet by Kamailio?
I have Kamailio 5.2.5.
Regards,
Ali Taher
Hi List
# ----- registrar params -----
modparam("registrar", "method_filtering", 1)
# modparam("registrar", "append_branches", 0)
modparam("registrar", "max_contacts", 10)
modparam("registrar", "max_expires", 3600)
modparam("registrar", "gruu_enabled", 0)
modparam("registrar", "retry_after", 30)
modparam("registrar", "xavp_cfg", "reg")
== snipp ==
# Handle SIP registrations
route[REGISTRAR] {
# We are authenticated.
# Create an AOR based on the auth_username for the location service.
$var(saveuri) = "sip:" + $aU + "@" + $rd;
# Set max_contacts limit via registration module reg xavp.
if ($avp(debug) > 0) {
xlog("L_INFO", "$cfg(route): Setting max_contacts to $avp(max_contacts) for $var(saveuri)\n");
}
$xavp(reg=>max_contacts) = $avp(max_contacts);
# Save Location!
$var(result) = save("location","0x00","$var(saveuri)");
if ($var(result) == -2) {
xlog("L_ERR", "$cfg(route): Too many contacts for $var(saveuri)\n");
sl_reply_error();
}
if ($var(result) == -1) {
xlog("L_ERR", "$cfg(route): Error saving location $var(saveuri)\n");
sl_reply_error();
}
if ($var(result) == 1) {
xlog("L_INFO", "$cfg(route): Contact $var(saveuri) inserted\n");
}
if ($var(result) == 2) {
xlog("L_INFO", "$cfg(route): Contact $var(saveuri) updated\n");
}
if ($var(result) == 3) {
xlog("L_INFO", "$cfg(route): Contact $var(saveuri) deleted\n");
}
if ($var(result) == 4) {
xlog("L_INFO", "$cfg(route): Contact $var(saveuri) returend\n");
}
exit;
}
== snapp ==
$avp(max_contacts) is set to 1
Still, multiple registrations are possible for the $aU in question.
What am I doing wrong?
Mit freundlichen Grüssen
-Benoît Panizzon-
--
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,
Please keep the list in CC.
Regarding opening new TLS 1.3 connection, this should work, but did not tested it right now. If not, open an issue on our tracker.
Regarding the option to restrict to only TSLv1.3 connection - I have added support for configuring this to git master version in commit 105600b3.
Maybe you can give it a try, the patch should probably apply to 5.6.x branch.
Cheers,
Henning
From: Helio <hok.sh10(a)gmail.com>
Sent: Wednesday, August 17, 2022 2:52 PM
To: Henning Westerholt <hw(a)gilawa.com>
Subject: Re: [SR-Users] TLSv1.3 support
Regarding the full support, I would like to know if Kamailio can start a TLSv1.3 connection as a client. Another point is if we can restrict to accept only TLS v1.3 and not TLSv1.2 for instance.
Thanks,
Helio
Em ter., 16 de ago. de 2022 às 11:45, Henning Westerholt <hw(a)gilawa.com<mailto:hw@gilawa.com>> escreveu:
Hello,
not sure about the question about “full support”, maybe you can add details.
Kamailio supports connection with TLSv1.3:
$ openssl s_client -connect kam04.tst.domain.net:5061<http://kam04.tst.domain.net:5061> -tls1_3 2>&1 | tail -n 10
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 4096 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
Cheers,
Henning
From: sr-users <sr-users-bounces(a)lists.kamailio.org<mailto:sr-users-bounces@lists.kamailio.org>> On Behalf Of Helio
Sent: Monday, August 15, 2022 8:01 PM
To: sr-users(a)lists.kamailio.org<mailto:sr-users@lists.kamailio.org>
Subject: [SR-Users] TLSv1.3 support
Hello,
I noticed that Kamailio has option TLSv1.2+. Does the Kamailio support full TLSv1.3? Or does it have any restrictions?
BR,
Hello all,
I'm using sqlops module to connect to postgres and get the routing of calls from postgresql database.
In order to troubleshoot issues in case they happened, I added each call details to Kamailio log.
In some cases, when there is heavy traffic load (around 100 cps), I don't find some calls in Kamailio log, knowing that I can find them on the switch log (switch sending the invite packets to Kamailio).
When checking the traces on these calls taken by the switch, it's clear that Kamailio is not responding to the invite packets sent by the switch. It could be because there are no available process to handle the call at this moment (I have set fork=14)
Is it possible to check if there are calls pending in the queue?
Regards,
Hello i would like to use the evrexec module to execute background jobs over exec module mainly because i want to be able to trigger that route manually via rpc from time to time.
in the documentation its is stated we should use tasks that run forever and except using while loop i dont see another way.
and i dont to want to disable max_while_loops. but if i disable it i will get error message like runaway while (1091, 9): more then 100 loops.
so is there another way to do it properly ?
Thanks.
Hello All
kamailio 5.5.3
KEMI Python
Lab environemnt
Is there a reason why this does not work?
Lines 2 and 3 work but the removal of the initial From is not working on Line 1
1. KSR.hdr.remove("From")
2. KSR.hdr.append_to_reply("From: " +KSR.pv.gete("$fn") + " <"+KSR.pv.gete("$fu") + ">" + ";tag=" +KSR.pv.gete("$ft") + "--1234" + "\r\n")
3. KSR.sl.sl_send_reply(200, "OK")
In a SUBSCRIBE/NOTIFY scenario I am trying to control the From Tag returned in the 200OK so I can use the same one in subsequent NOTIFY messages generated outside of Kamailio, my theory is use the From tag in the Subscribe and append it on the reply with -1234 for example (this is only in a Lab at this stage, any other options please let me know)
Whenever I do this I end up with 2 From headers (see below)
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.67:5060;branch=z9hG4bK-f710a11a;rport=46404;received=xx.yy.xx.yy
From: " testuser" sip:limeant30@sip.viazeta.com;tag=bf8745def06c7b12
To: <sip: testuser(a)sip.viazeta.com>;tag=47969b75f14e6954812863912d1cf21c.b5f3318f
Call-ID: b21ba770-9b5836aa(a)192.168.1.67
CSeq: 18137 SUBSCRIBE
Contact: "testuser" <sip:testuser@ xx.yy.xx.yy:46404>
Expires: 3600
From: "testuser" sip:testuser@testbed.com;tag=bf8745def06c7b12--1234
Content-Length: 0
I have tried many many variations but the original From header always persists I have checked the debug logs and it says it has been removed
Anyone know what I am missing? And how to get KSR.hdr.remove("From") to work. Looking in a debug log the header is removed.
Lewis