Hello,
the branch 6.0 was created, therefore the master branch is open for
adding new features, to be part of future release series v6.1.x.
Any bug fix committed to master that applies to 6.0.x or older stable
branches should be backported as usual with "git cherry-pick -x ..." to
appropriate branches like 6.0 or 5.8.
Expect that v6.0.0 will be released in a few weeks from now.
Based on the workflow used during the past years, the next future
release v6.1.0 should be out after another 8-10 months of development,
plus 1-2 months of testing, so sometime during the last part of 2025 or
the beginning of 2026.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Kamailio World Conference, May 12-13, 2025, Berlin -- kamailioworld.com
Hello,
the branch 6.0 has been created, to be used for releasing v6.0.x series.
To check out this branch, the following commands can be used:
git clone https://github.com/kamailio/kamailio kamailio-6.0
cd kamailio-6.0
git checkout -b 6.0 origin/6.0
Pushing commits in this branch:
git push origin 6.0:6.0
Note that 6.0 is an official stable branch, so only bug fixes, missing
kemi exports (discuss on sr-dev if not sure) or improvements to
documentation or helper tools can be pushed to this branch.
As usual, if there is a bug fixed, commit and push first to master
branch and then cherry pick to 6.0 branch:
git cherry-pick -x COMMITID
In few weeks, the first release from branch 6.0 will be out,
respectively Kamailio v6.0.0.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Hi,
I am running Kamailio 5.7.* RHEL
I need to log the latency of each XHTTP request (milli or microseconds precision) so I tried using $TV(un) which always gives a 0 value.
Can we access $TV(un) under XHTTP routes?
event_route[xhttp:request] {
$var(tv_http_req_start_time) = $TV(un);
xlog("L_INFO", "$$var(tv_http_req_start_time)= $var(tv_http_req_start_time) and actual $$TV(un)= $TV(un)");
....
}
Output:
Jan 22 16:18:20 VM-123************ kamailio[346535]: INFO: <script>: $var(tv_http_req_start_time)= 0 and actual $TV(un)= 0
$TS - I have tried this, it gives the Unix in seconds precision but I want milliseconds precision.
Thanks
Kasee
Hello,
later today, in a few hours, I am going to create the branch 6.0. More
details will be provided once it has been created.
Cheers,
Daniel
On 20.01.25 08:25, Daniel-Constantin Mierla via sr-dev wrote:
> Hello,
>
> I think we should branch it on Wednesday, Jan 22, 2025, no matter on
> what stage we are with cmake support. The old-Makefiles should be kept
> anyhow (as they are or in a special folder with an easy way to recover
> them), because there are many bits and pieces that can be discovered
> later when more users.
>
> Because there were no many bugs reported to the C code specific to 6.0,
> we can aim releasing on January 29, 2025, with old-Makefile still to be
> used for tasks that are not yet covered by cmake.
>
> Cheers,
> Daniel
>
> On 15.01.25 11:16, Henning Westerholt via sr-dev wrote:
>> Hello,
>>
>> yes, Xenofon is also waiting for a final reply from Sergey for the RPM packaging if now all is fine (was discussed as part of PR #4085).
>>
>> Cheers,
>>
>> Henning
>>
>>> -----Original Message-----
>>> From: Victor Seva via sr-dev <sr-dev(a)lists.kamailio.org>
>>> Sent: Mittwoch, 15. Januar 2025 10:59
>>> To: sr-dev(a)lists.kamailio.org
>>> Cc: Victor Seva <linuxmaniac(a)torreviejawireless.org>
>>> Subject: [sr-dev] Re: Branching 6.0 series
>>>
>>> Hi,
>>>
>>> please postpone. I didn't have time finalize the test of cmake builds on debian
>>> packaging yet.
>>>
>>> On 15/1/25 7:18, Daniel-Constantin Mierla via sr-dev wrote:
>>>> Hello,
>>>>
>>>> creating git branch 6.0 was planned for today and I wonder if it shall
>>>> be done latter during the evening or it would be preferred to be
>>>> postponed for two days or so, till end of the week/Friday, as I
>>>> noticed yesterday some new work being done to cmake files for FreeBSD
>>>> and maybe new commits are still coming.
>>>>
>>>> Of course, there is also the option to create the branch and then the
>>>> new commits backported, but maybe postponing makes everything more
>>>> convenient.
>>>>
>>>> In short, if anyone feels that postponing a bit creating the branch
>>>> 6.0 simplifies their current work, let us know. If nobody ask for
>>>> postponing, the branch will be created later towards the end of today.
>>>>
>>>> Cheers,
>>>> Daniel
>>> --
>>> -----------------------------------------------------------------
>>> | ⢀⣴⠾⠻⢶⣦⠀ Victor Seva |
>>> | ⣾⠁⢠⠒⠀⣿⡁ linuxmaniac(a)torreviejawireless.org |
>>> | ⢿⡄⠘⠷⠚⠋⠀PGP: 8F19 CADC D42A 42D4 5563 730C 51A0 9B18 CF5A
>>> 5068 |
>>> | ⠈⠳⣄⠀⠀⠀ Debian Developer |
>>> -----------------------------------------------------------------
>> _______________________________________________
>> Kamailio - Development Mailing List -- sr-dev(a)lists.kamailio.org
>> To unsubscribe send an email to sr-dev-leave(a)lists.kamailio.org
>> Important: keep the mailing list in the recipients, do not reply only to the sender!
>
> --
> Daniel-Constantin Mierla (@ asipto.com)
> twitter.com/miconda -- linkedin.com/in/miconda
> Kamailio Consultancy, Training and Development Services -- asipto.com
>
> _______________________________________________
> Kamailio - Development Mailing List -- sr-dev(a)lists.kamailio.org
> To unsubscribe send an email to sr-dev-leave(a)lists.kamailio.org
> Important: keep the mailing list in the recipients, do not reply only to the sender!
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Hi
I see that when kamailio adds rport to the Via header field of a
request that has two Via values on the same line (comma-separated, of
course), it adds the rport (and received) to the wrong value.
I have this test kamailio.cfg for demonstration.
children=1
loadmodule "sl"
loadmodule "textops"
loadmodule "nathelper"
request_route {
force_rport();
sl_send_reply(200, "OK");
}
I send this OPTIONS (truncated) and get this response (truncated). The
rport should be on the first Via value, not the second.
OPTIONS sip:server SIP/2.0
Via: SIP/2.0/UDP 3.9.4.2:5060;branch=z9hG4bK503983089,SIP/2.0/UDP
1.3.4.1:5060;branch=z9hG4bK53805983059
From: <sip:client>;tag=LeonhardEuler
To: <sip:server>
SIP/2.0 200 OK
Via: SIP/2.0/UDP 3.9.4.2:5060;branch=z9hG4bK503983089,SIP/2.0/UDP
1.3.4.1:5060;branch=z9hG4bK53805983059;rport=53805;received=127.0.0.1
From: <sip:client>;tag=LeonhardEuler
To: <sip:server>;tag=9dd61ff61e802d8e2bef5f14621ef3c2.49678e65
Server: kamailio (6.0.0-pre0 (x86_64/linux))
I've tested this with the latest commit (c994fb8) from kamailio. I
can't think how this can be anything other than a bug. Should I log a
bug report for this?
James
Hi,
i have some SIP websocket clients (built using the SIP.js library) SUBSCRIBEd to other clients
via kamailio v5.8.2. If one of the watchers suddenly disappears (e.g. the web page is reloaded),
another connection is made and a new watcher appears in kamailio without the old one disappearing.
For example:
# kamctl rpc presence.watcher_list basic sip:1001@example.voismart.com
{
"jsonrpc": "2.0",
"result": [
{
"pres_uri": "sip:1001@example.com",
"to_user": "1001",
"watcher_user": "1000",
"contact": "sip:1000@mfp0h2dhhmq2.invalid;transport=ws;alias=192.168.56.10~34166~5",
"callid": "1o9b499kj6l65if0p30t",
"user_agent": "sip.js/1.12.1",
"expires": 1736422494,
...
}, {
"pres_uri": "sip:1001@example.com",
"to_user": "1001",
"watcher_user": "1000",
"contact": "sip:1000@0j7qoabnv827.invalid;transport=ws;alias=192.168.56.10~34156~5",
"callid": "8mjhrqifgm39up9t2qq3",
"user_agent": "sip.js/1.12.1",
"expires": 1736422492,
...
}
],
"id": 11753
}
you can see the duplicated watcher in which the old connection is now invalid because the
websocket client disappeared.
In this situation, issuing a pres_refresh_watchers() call will fail to send any notify
(even to the valid connection) because of this error:
WARNING: <core> [core/msg_translator.c:3007]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
ERROR: tm [t_msgbuilder.c:1423]: assemble_via(): via building failed
ERROR: tm [t_msgbuilder.c:1614]: build_uac_req(): error while assembling Via
ERROR: tm [uac.c:552]: t_uac_prepare(): Error while building message
ERROR: presence [notify.c:1734]: send_notify_request(): in function tm t_request_within()
ERROR: presence [notify.c:1829]: notify(): sending Notify not successful
ERROR: presence [notify.c:1585]: query_db_notify(): Could not send notify for [event]=dialog
ERROR: presence [presence.c:739]: pres_refresh_watchers(): sending Notify requests
in which the building of the notify message fails because it cannot find a valid connection
when building the via header.
Is this a wanted behaviour? shouldn't it just fail the sending of the single message? Is there
anything i can do to fix this?
Trying to reproduce the same problem with a regular tcp client, it seems that the other notifys are
correctly sent and only a timeout error is sent for the single message:
ERROR: <core> [core/tcp_main.c:4622]: handle_tcpconn_ev(): connect 192.168.56.10:21994 failed
which i think is the correct behaviour.
Related question: is it possible to remove active watchers when the connection goes down?
Thanks for the help on this.
Testing out KEMI functionality and running into performance issues. If I exceed 150 calls per second the network receive queue grows and Kamailio is unable to keep up with requests and they begin dropping.
KEMI script for testing is just doing a stateless reply to invites.
Using python3s module.
I've played with Kamailio child processes and memory allocations, but there is no impact. I've also attempted some buffer / memory tweaking at the OS level, again with no impact. Increasing CPU cores and even running the test on bare metal results in the same.
Example of receive queue at 150 calls per second -
Netid State Recv-Q Send-Q Local Address:Port
udp UNCONN 337280 0 x.x.x.x:5060
Just wondering if anyone has experienced similar issues or has an example of the performance they are seeing before I continue down this path.
Thanks,
- dan
Hi Gang
I guess, I don't completely understand who to properly perform serial
branching.
I did try to follow the examples from:
https://www.kamailio.org/docs/modules/devel/modules/tm.html#tm.f.t_next_con…
This is, stripped down, the relevant config used.
modparam("tm", "contacts_avp", "tm_contacts")
modparam("tm", "contact_flows_avp", "tm_contact_flows")
route[LOCATION]
{
lookup_to_dset("location", "$var(lookupuri)");
if (!t_load_contacts(1)) {
xlog("L_ERR", "$cfg(route): ######### load_contacts failed\n");
sl_send_reply("500", "Server Internal Error - Cannot load contacts");
exit;
}
xlog("L_INFO", "$cfg(route): Contacts loaded: $cnt($xavp(tm_contacts))\n");
=> Confirms, there is more than one contact loaded.
if (!t_next_contacts()) {
send_reply("480", "Not registered");
}
t_set_fr(5000,1500); # Set 5 second timeout for LAB testing to quickly try the next contact.
t_on_branch("BR_TO_CUST");
t_on_branch_failure("BR_TO_CUST_FAILURE");
exit;
}
event_route[tm:branch-failure:BR_TO_CUST_FAILURE] {
xlog("BRANCH FAILED $T_reply_code to $rm message\n");
t_on_branch("BR_TO_CUST");
t_on_branch_failure("BR_TO_CUST_FAILURE");
if (t_next_contact_flow())
{
xlog("BRANCH FAILED, Try Next\n");
t_relay();
} else {
xlog("L_INFO", "No more flows\n");
t_reply("408", "Branch Timeout");
exit;
}
}
What happens is:
INVITE is sent to the first contact, who is replying RINGING.
After 5 seconds the timeout is reached and the branch-failure route engaged.
Jan 17 15:01:15 dev-cpereg01 kamailio[3599432]: ERROR: <script>: BRANCH FAILED 408 to INVITE message
Jan 17 15:01:15 dev-cpereg01 kamailio[3599432]: INFO: <script>: No more flows
Jan 17 15:01:15 dev-cpereg01 kamailio[3599432]: CRITICAL: tm [tm.c:1554]: ki_t_reply(): w_t_reply entered in unsupported mode
To my understanding, t_next_contact_flow() should have loaded the next ds, but this does not seem to happen.
What am I missing?
--
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
______________________________________________________
Anybody experiences with Kamailio IMS modules (ims_registrar_scscf, ims_usrloc_scscf, ims_isc, ........) and the use of IPv6 addresses?
Any pitfalls? DNS issues?
Thanks,
Christoph
Hello all!
just wondering if anyone knows a good way to failover with the HTTP Async
module.
The standard HTTP Client module (synchronous) does implement some nice
functionalities for failover between URL addresses, but the HTTP Async
doesn't have any failover functionality...
I have implemented some functions (within kamailio.cfg) for failover upon
HTTP requests, but despite it working fine, it would be better to have that
functionality on the HTTP Async module, just like HTTP Client has...
Any technical reason for HTTP Async module not having failover
functionalities?
Atenciosamente / Kind Regards / Cordialement / Un saludo,
*Sérgio Charrua*