Hi everyone,
I have a kamailio configured to send invites from different phone numbers registered in kamailio to different endpoints.
The configuration that I have right now is a big if chain with the phone numbers that then sends the invite using dispatcher module.
Example:
If (phone number in invite = phone number X) { dispatcher sends to endpoint X}
If (phone number in invite = phone number Y) { dispatcher sends to endpoint Y}
If (phone number in invite = phone number Z) { dispatcher sends to endpoint Z}
Im not sure if this is the correct way of doing this or if there is any module that can do this allowing me to configure it using BBDD instead of kamailio configuration.
I started doing it like this on our test environment while I was learning how to use kamailio and I'd like to know if this is the right way to do it or if I should do it with other methods
Thank you in advance
Rtpengine support-
I am re-posting again, as I noticed on the SR-USERs web page no HTML
or inline images are showing
(https://lists.kamailio.org/mailman3/hyperkitty/list/sr-users@lists.kamailio…).
The Wireshark screencap that demonstrates the issue is uploaded at:
https://www.signalogic.com/images/rtpengine_wireshark_capture_timestamp_jum…
all other info remains the same.
Thanks, Jeff
----- Forwarded message from Jeff Brower <jbrower(a)signalogic.com> -----
Date: Fri, 17 May 2024 17:10:10 +0000
From: Jeff Brower <jbrower(a)signalogic.com>
Subject: Fwd: [SR-Users] rtpengine timestamp jumps
To: sr-users(a)lists.kamailio.org
Reposting this. If there is an issue with HTML format and/or wireshark
screen cap and I need to upload that separately somewhere else, please
let me know. Thanks.
-Jeff
----- Forwarded message from Jeff Brower <jbrower(a)signalogic.com> -----
Date: Thu, 09 May 2024 05:32:27 +0000
From: Jeff Brower <jbrower(a)signalogic.com>
Subject: [SR-Users] rtpengine timestamp jumps
To: sr-users(a)lists.kamailio.org
Hi rtpengine experts,
We have some customers processing long multi-party call pcaps using
mediaMin who are reporting large amounts of packets with timestamp
jumps but no packet loss (for instance 10% of packets over a 1 hr 45
min call). For example, in the Wireshark excerpt shown below, packets
6 and 8 sent by rtpengine show a timestamp increment of 640, but
sequence number increment of 1:
[screencap link at
https://www.signalogic.com/images/wireshark_capture_timestamp_jump.png]
In the mediaMin output packet log we typically see sections similar to:
:
:
Seq num 98584 timestamp = 3902252372, rtp pyld len = 33 media-R
Seq num 98585 timestamp = 3902252692, rtp pyld len = 33 media
Seq num 98586 timestamp = 3902253012, rtp pyld len = 33 media-R
Seq num 98587 timestamp = 3902253332, rtp pyld len = 33 media
Seq num 98588 timestamp = 3902253652, rtp pyld len = 33 media-R
Seq num 98589 timestamp = 3902253972, rtp pyld len = 33 media
Seq num 98590 timestamp = 3902254292, rtp pyld len = 33 media
Seq num 98591 timestamp = 3902254612, rtp pyld len = 33 media-R
Seq num 98592 timestamp = 3902254932, rtp pyld len = 33 media
Seq num 98593 timestamp = 3902255252, rtp pyld len = 33 media
Seq num 98594 timestamp = 3902255572, rtp pyld len = 33 media-R
Seq num 98595 timestamp = 3902255892, rtp pyld len = 33 media
Seq num 98596 timestamp = 3902256212, rtp pyld len = 33 media
Seq num 98597 timestamp = 3902256532, rtp pyld len = 33 media
Seq num 98598 timestamp = 3902256852, rtp pyld len = 33 media-R
Seq num 98599 timestamp = 3902257172, rtp pyld len = 33 media
Seq num 98600 timestamp = 3902257492, rtp pyld len = 33 media-R
Seq num 98601 timestamp = 3902257812, rtp pyld len = 33 media
Seq num 98602 timestamp = 3902258132, rtp pyld len = 33 media
Seq num 98603 timestamp = 3902258452, rtp pyld len = 33 media
Seq num 98604 timestamp = 3902258772, rtp pyld len = 33 media-R
Seq num 98605 timestamp = 3902259092, rtp pyld len = 33 media
:
:
where media-R packets are timestamp gap repairs (i.e. frame loss
concealment). The behavior tends to be bursty, but once it gets going
it goes for a while and seems relatively consistent.
Is this expected behavior for rtpengine ? If so is rptengine in turn
dealing with some type of "slow packet rate" issue from a remote
sender ?
Thanks, Jeff
----- End forwarded message -----
----- End forwarded message -----
Hello all, im not clear on the children setting, currently we’re listening in a single UDP port, i do understand that children are how many forks per listener ip:port, but i have this question, is this value tied on how many requests are received?
In our case every requests takes an average of 80ms to be processed (there are a few external queries executed per request), so, example which value for children should i use if i have 200req/s, 300, 400?
Right now im using 16 but i can see some cpu peaks in high traffic hours.
thanks
Hello,
We are trying to integrate Kamailio as the IMS server with our 5G core
emulator by following the steps listed out at
https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/. In our case, we
have our own 5G core emulator instead of the Open5GS core.
We are using sipp scripts to generate the SIP calls. The PCRF component of
the 5G core is emulated by us and is capable of handling Diamater calls
from Kamailio over the Rx interface.
We have got the setup working to the point where the SIP Register calls are
landing on the PCSCF which in turn is sending out AA Requests to PCRF and
the PCRF is responding. However there is an internal error in the Kamailio
log
"4(3682133) ERROR: ims_qos [ims_qos_mod.c:1305]: w_rx_aar_register(): This
contact does not exist in PCSCF usrloc - error in cfg file"
Please help us in identifying if we are missing anything in the Kamailio
set up.
The packet capture and syslog excerpts from the VM where Kamailio is
running are attached; here we are trying to perform SIP Registration for
three SIP endpoints 001010123456791, 001010123456792 and 001010123456793.
If there is any additional information required, please let us know.
Regards,
Shantanu
Checking Kamailio in a VoLTE environment we are finding issues to make it work.
First issues arise when getting AS to extract the required info from third party registration, primarily IMPUs.
Third party registration is sent to AS with IMPI in To header, preventing the AS from extracting the IMPU from the most obvious place, the To header, according to 3GPP 24.229:
"Notification of Application Servers about registration status
[...] the To header field, which shall contain a non-barred public user identity belonging to the service profile of the processed Filter Criteria. It may be either a public user identity as contained in the REGISTER request received from the UE or one of the implicitly registered public user identities in the service profile, as configured by the operator;"
On the other hand, the third party registration can only embed in its body either the original request or the original response but not both (notice mutually exclusive "else if" statements in third_party_reg.c). Both are needed to extract Feature-Caps (from original request) and IMPUs (for instance from P-Associated-URI in original response).
Therefore to extract that info the AS should subscribe to the reg info in S-CSCF, but such SUBSCRIBE is rejected with 403. From Registrar IMS SCSCF documenation it looks like this is not supported:
"This function checks to see that a SUBSCRIBE request is authorised to subscribe to the particular identity. Only 3 entities can subscribe:
The user agent to its own state
The P-CSCF specified in the path header for that user
Application Server (AS) not yet implemented"
Therefore question to the community is how these limitations are overcome in existing VoLTE deployments with Kamailio? Any advice?
Hi all,
I was reviewing the `ims_ipsec_pcscf` code and noticed that this module creates a pool of sockets using different ports (ipsec_max_connections). I'm unclear on the necessity of this approach. Can't we simply create one server listener and one client listener to handle all UE connections? If this is feasible, is there still a need to create the pool at startup?
I'm curious if this is due to an architectural limitation or if the IPSec module can be modified to replace the current implementation with a more efficient one.
Thank you for your insights.
Best regards,Hossein
Hello
In the context of an IMS deployment, does anybody know if Shared iFC mechanism is supported in Kamailio? I don't see configuration options for it, and just wanted to confirm if only regular iFCs (residing on HSS) are supported.
Thank you
Hi,
I am trying to set up VoNR with version 5.8.1, but I cannot find the configuration information and documentation anywhere. Has anyone tested a VoNR call?
Thanks.
We've noticed an issue with UDP endpoints and the usrloc module not sending keepalive packets to them for a long time. Eventually, usrloc will begin doing it, but sometimes it's anywhere between 10 minutes and multiple hours before the endpoint starts receiving an OPTIONS packet.
TCP and TLS endpoints do not have this issue - they being receiving OPTIONS after registration + ka_timeout elapsed.
Has anyone else seen this? It can be very easily seen with a pcap on a device registering via UDP.
Hi,
Hope to find you well,
I have a question about the 'db_flatstore' module in Kamailio. Here's my
script for log rotation:
for f in acc_cdrs_*.log; do
mv -- "$f" "${f%.log}.temp"
done
docker exec -it pcscf kamcmd flatstore.k_rotate
rm *.temp
I want to know if the kamcmd command is blocking and the files can be
removed after that or if I should wait for it to be done before removing
the renamed files.
Regards,
Farzaneh