… forked INVITEs auths
#### Pre-Submission Checklist
- [*] Commit message has the format required by CONTRIBUTING guide
- [*] Commits are split per component (core, individual modules, libs, utils, ...)
- [*] Each component has a single commit (if not, squash them into one commit)
- [*] No commits to README files for modules (changes must be done to docbook files
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [*] New feature (non-breaking change which …
[View More]adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ *] Tested changes locally
- [ ]* Related to issue #[4266](https://github.com/kamailio/kamailio/issues/4266)
#### Description
If a Negative reply for forked REGISTER comes after the first 200 response, it won't be ignored by Kamailio and will be processed the same way as replies processed for the INVITEs
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4304
-- Commit Summary --
* tm: allow pending forked REGISTER auths being handled the same way as forked INVITEs auths
-- File Changes --
M src/modules/tm/t_reply.c (15)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4304.patchhttps://github.com/kamailio/kamailio/pull/4304.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4304
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4304(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4276
-- Commit Summary --
* add remove all header function
-- File Changes --
M src/modules/pv_headers/pv_headers.c (9)
M src/modules/pv_headers/pvh_func.c (19)
M src/modules/pv_headers/pvh_func.h (1)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4276.patchhttps://github.com/kamailio/kamailio/pull/4276.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4276
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4276(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Added subscriptions replication and presentity sync via dmq for presence module.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4239
-- Commit Summary --
* Subscriptions replication and presence sync
-- File Changes --
M src/modules/presence/hash.c (92)
M src/modules/presence/hash.h (6)
M src/modules/presence/notify.c (9)
M src/modules/presence/presence.c (18)
M src/modules/presence/presence.h (6)
M src/modules/presence/presence_dmq.c (334)
M src/modules/presence/presence_dmq.h (6)
M src/modules/presence/presentity.c (93)
M src/modules/presence/presentity.h (2)
M src/modules/presence/publish.c (4)
M src/modules/presence/subscribe.c (55)
M src/modules/presence/subscribe.h (1)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4239.patchhttps://github.com/kamailio/kamailio/pull/4239.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4239
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4239(a)github.com>
[View Less]
acroitor created an issue (kamailio/kamailio#4340)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
…
[View More] * https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
With kamailio built from latest sources from master, it fails to start if sipdump module is added to kamailio.cfg
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
Start Kamailio with <loadmodule "sipdump.so"> in kamailio.cfg
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
(paste your debugging data here)
```
#### Log Messages
kamailio[301309]: ERROR: <core> [core/sr_module.c:613]: ksr_load_module(): could not open module </usr/lib/x86_64-linux-gnu/kamailio/modules/sipdump.so>: /usr/lib/x86_64-linux-gnu/kamailio/modules/sipdump.so: undefined symbol: ksr_sigsem_xfree
kamailio[301309]: CRITICAL: <core> [core/cfg.y:4086]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 161, column 12-23: failed to load module
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
(paste your output here)
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
(paste your output here)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4340
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4340(a)github.com>
[View Less]
#### Pre-Submission Checklist
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature …
[View More](non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
Added TLS encryption keys export into the database.
Later keys can be searched and saved to a file. Key search can be done by timestamp, connection IP addresses, and port numbers. For key search, used kamcmd utility.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4339
-- Commit Summary --
* tls_tracker: added module for tls encriptions key export
-- File Changes --
A src/modules/tls_tracker/Makefile (75)
A src/modules/tls_tracker/README (1)
A src/modules/tls_tracker/api.c (33)
A src/modules/tls_tracker/api.h (40)
A src/modules/tls_tracker/doc/Makefile (4)
A src/modules/tls_tracker/doc/tls_tracker.xml (117)
A src/modules/tls_tracker/tls_tracker_mod.c (1126)
A src/modules/tls_tracker/tls_tracker_mod.h (25)
A src/modules/tls_tracker/tls_tracker_rpc.c (478)
A src/modules/tls_tracker/tls_tracker_rpc.h (8)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4339.patchhttps://github.com/kamailio/kamailio/pull/4339.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4339
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4339(a)github.com>
[View Less]
sergey-safarov created an issue (kamailio/kamailio#4282)
I have refactored `alpine` image generation. This GitHub action works in a personal repository, but cannot clean up untagged images from the "kamailio" account.
Example
https://github.com/kamailio/kamailio/actions/runs/15605254192/job/439654377…
@linuxmaniac do you have any idea why this can happen?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4282
You are receiving this because …
[View More]you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4282(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 91472b8d1015ace7c40c052a19913d38430d575f
URL: https://github.com/kamailio/kamailio/commit/91472b8d1015ace7c40c052a19913d3…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-24T16:16:09+02:00
modules: readme files regenerated - tls ... [skip ci]
---
Modified: src/modules/tls/README
---
Diff: https://github.com/kamailio/kamailio/commit/91472b8d1015ace7c40c052a19913d3……
[View More]Patch: https://github.com/kamailio/kamailio/commit/91472b8d1015ace7c40c052a19913d3…
---
diff --git a/src/modules/tls/README b/src/modules/tls/README
index ccb67fd4bc3..87b3938f7e8 100644
--- a/src/modules/tls/README
+++ b/src/modules/tls/README
@@ -75,6 +75,7 @@ Olle E. Johansson
10.41. provider_quirks (integer)
10.42. keylog_mode (int)
10.43. keylog_file (str)
+ 10.44. keylog_peer (str)
11. Functions
@@ -155,9 +156,10 @@ Olle E. Johansson
1.51. Set verify_client tls.cfg parameter
1.52. Set keylog_mode parameter
1.53. Set keylog_file parameter
- 1.54. is_peer_verified usage
- 1.55. tls_set_connect_server_id usage
- 1.56. Use of event_route[tls:connection-out]
+ 1.54. Set keylog_peer parameter
+ 1.55. is_peer_verified usage
+ 1.56. tls_set_connect_server_id usage
+ 1.57. Use of event_route[tls:connection-out]
Chapter 1. Admin Guide
@@ -217,6 +219,7 @@ Chapter 1. Admin Guide
10.41. provider_quirks (integer)
10.42. keylog_mode (int)
10.43. keylog_file (str)
+ 10.44. keylog_peer (str)
11. Functions
@@ -659,6 +662,7 @@ Place holder
10.41. provider_quirks (integer)
10.42. keylog_mode (int)
10.43. keylog_file (str)
+ 10.44. keylog_peer (str)
10.1. tls_method (string)
@@ -1666,6 +1670,7 @@ verify_client = optional_no_ca
* 2 (bit 2) - keys logging active
* 4 (bit 3) - write keys to NOTICE log
* 8 (bit 4) - write keys to file
+ * 16 (bit 5) - send keys to udp peer
The default value: 0.
@@ -1687,6 +1692,19 @@ modparam("tls", "keylog_mode", 15)
modparam("tls", "keylog_file", "/tmp/kamailio-tls-keylog.txt")
...
+10.44. keylog_peer (str)
+
+ Address of the peer where to send the keys log. It has to be in the
+ format "proto:ip:port". Only "udp" protocol (proto) is supported. The
+ value 16 (bit 5) has to be set to keylog_mode parameter.
+
+ The default value: NULL.
+
+ Example 1.54. Set keylog_peer parameter
+...
+modparam("tls", "keylog_peer", "udp:127.0.0.1:8020")
+...
+
11. Functions
11.1. is_peer_verified()
@@ -1700,7 +1718,7 @@ modparam("tls", "keylog_file", "/tmp/kamailio-tls-keylog.txt")
It can be used only in a request route.
- Example 1.54. is_peer_verified usage
+ Example 1.55. is_peer_verified usage
...
if (proto==TLS && !is_peer_verified()) {
sl_send_reply("400", "No certificate or verification failed");
@@ -1719,7 +1737,7 @@ modparam("tls", "keylog_file", "/tmp/kamailio-tls-keylog.txt")
It can be used only in ANY_ROUTE.
- Example 1.55. tls_set_connect_server_id usage
+ Example 1.56. tls_set_connect_server_id usage
...
tls_set_connect_server_id("clientone");
...
@@ -1811,7 +1829,7 @@ modparam("tls", "keylog_file", "/tmp/kamailio-tls-keylog.txt")
If drop() is executed in the event route, then the data is no longer
sent over the connection.
- Example 1.56. Use of event_route[tls:connection-out]
+ Example 1.57. Use of event_route[tls:connection-out]
...
event_route[tls:connection-out] {
if($sndto(ip)=="1.2.3.4") {
[View Less]
Module: kamailio
Branch: master
Commit: 97345507045bee739b006298a586dfaedc2b09e8
URL: https://github.com/kamailio/kamailio/commit/97345507045bee739b006298a586dfa…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-07-24T13:11:45Z
cmake: Fix component group names for dbshema generation
- dbshema modules generated components that were not provided by user
- if a module with dbschema is included in the include_modules list, it will …
[View More]now be in "user_specified_list" component instead of the actual KGROUP component that might be not included.
---
Modified: cmake/groups.cmake
---
Diff: https://github.com/kamailio/kamailio/commit/97345507045bee739b006298a586dfa…
Patch: https://github.com/kamailio/kamailio/commit/97345507045bee739b006298a586dfa…
---
diff --git a/cmake/groups.cmake b/cmake/groups.cmake
index c629ee49f93..353611f03be 100644
--- a/cmake/groups.cmake
+++ b/cmake/groups.cmake
@@ -754,7 +754,7 @@ set(MODULE_GROUP_PACKAGE_GROUPS
# Add group names to available group and provide "ALL_PACKAGED" as well
# for easier packaging using components
-list(APPEND AVAILABLE_GROUPS ALL_PACKAGED ${MODULE_GROUP_PACKAGE_GROUPS})
+list(APPEND AVAILABLE_GROUPS ALL_PACKAGED KMINI ${MODULE_GROUP_PACKAGE_GROUPS})
# Find the group name for the target by checking if the module is in the
# list of modules to be built and if so, use the group name of that module
@@ -764,28 +764,20 @@ function(find_group_name module)
""
PARENT_SCOPE
)
- # This was need due to the dbschema.cmake
- # If one select one of these option as group
- # we want the group name to match instead of the actual group it belongs to
- if(MODULE_GROUP_NAME STREQUAL "ALL"
- OR MODULE_GROUP_NAME STREQUAL "DEFAULT"
- OR MODULE_GROUP_NAME STREQUAL "STANDARD"
- OR MODULE_GROUP_NAME STREQUAL "COMMON"
- )
- set(group_name
- "${MODULE_GROUP_NAME}"
- PARENT_SCOPE
- )
- return()
+ separate_arguments(groups_to_search_in UNIX_COMMAND ${MODULE_GROUP_NAME})
+ list(FIND groups_to_search_in "ALL_PACKAGED" group_index)
+ if(group_index GREATER -1)
+ # Remove it from the list and append the package groups
+ list(REMOVE_AT groups_to_search_in ${group_index})
+ list(APPEND groups_to_search_in ${MODULE_GROUP_PACKAGE_GROUPS})
endif()
- # message(WARNING "groups to search in" ${MODULE_GROUP_PACKAGE_GROUPS})
- # Get all variable names in the current CMake context
- foreach(group IN LISTS MODULE_GROUP_PACKAGE_GROUPS)
- # message(WARNING "Modules in group ${group}: ${MODULES_IN_GROUP}")
- # message(WARNING "Checking group ${group} for db ${module}")
+ # message(WARNING "Groups provided by the user ${groups_to_search_in}")
+ # message(WARNING "Looking for group for db ${module}")
+ foreach(group IN LISTS groups_to_search_in)
get_property(MODULES_IN_GROUP VARIABLE PROPERTY "MODULE_GROUP_${group}")
+ # message(WARNING "Modules in group ${group}: ${MODULES_IN_GROUP}")
if("${module}" IN_LIST MODULES_IN_GROUP)
- # message(WARNING "Found group ${group} for db ${module}")
+ # message(WARNING "Found group ${group} for db ${module}")
set(group_name
"${group}"
PARENT_SCOPE
@@ -793,5 +785,12 @@ function(find_group_name module)
return()
endif()
endforeach()
- message((STATUS "module ${module} not found in any group"))
+ message(STATUS "module ${module} not found in any group")
+ # if not found in any group, it's probably in include_modules list
+ # Use the group name "user_specified_list" associated with include_modules
+ # list, otherwise it will generate Unknown group component
+ set(group_name
+ "user_specified_list"
+ PARENT_SCOPE
+ )
endfunction()
[View Less]
Module: kamailio
Branch: master
Commit: 78dbbda4ca74e18c4a99c87520abd5d7906af4d3
URL: https://github.com/kamailio/kamailio/commit/78dbbda4ca74e18c4a99c87520abd5d…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-07-24T13:11:45Z
cmake: Fix help string and allow mutliple values from gui
- Allow providing multiple space seperated groups in guis like ccmake instead of the single option
- ALL_PACKAGED option refined to be allowed …
[View More]with other groups as well.
- Providing ALL_PACKAGED with another group will append the another group to the list of groups comprising the ALL_PACKAGED option.
- Remove duplicates in the group list if any
---
Modified: src/modules/CMakeLists.txt
---
Diff: https://github.com/kamailio/kamailio/commit/78dbbda4ca74e18c4a99c87520abd5d…
Patch: https://github.com/kamailio/kamailio/commit/78dbbda4ca74e18c4a99c87520abd5d…
---
diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt
index 32840740a92..18dd8fe094c 100644
--- a/src/modules/CMakeLists.txt
+++ b/src/modules/CMakeLists.txt
@@ -12,16 +12,21 @@ include(${CMAKE_SOURCE_DIR}/cmake/groups.cmake)
set(AVAILABLE_GROUP_NAMES ${AVAILABLE_GROUPS})
set(MODULE_GROUP_NAME
"DEFAULT"
- CACHE STRING "Group of modules to build (one or multiple space seperated group)"
+ CACHE STRING "Groups of modules to build (one or multiple space seperated group)"
)
-set_property(CACHE MODULE_GROUP_NAME PROPERTY STRINGS ${AVAILABLE_GROUP_NAMES})
# User may provide multiple groups seperated by space
-if(MODULE_GROUP_NAME STREQUAL "ALL_PACKAGED")
- set(MODULE_GROUP_LIST ${MODULE_GROUP_PACKAGE_GROUPS})
-else()
- separate_arguments(MODULE_GROUP_LIST UNIX_COMMAND "${MODULE_GROUP_NAME}")
- message(STATUS "Building groups: ${MODULE_GROUP_LIST}")
+separate_arguments(MODULE_GROUP_LIST UNIX_COMMAND "${MODULE_GROUP_NAME}")
+
+# Deduplicate the list
+list(REMOVE_DUPLICATES MODULE_GROUP_LIST)
+list(FIND MODULE_GROUP_LIST "ALL_PACKAGED" INDEX)
+
+if(INDEX GREATER -1)
+ # Remove it from the lists
+ list(REMOVE_AT MODULE_GROUP_LIST ${INDEX})
+ list(APPEND MODULE_GROUP_LIST ${MODULE_GROUP_PACKAGE_GROUPS})
+ message(STATUS "Building all packaged modules along with other provided groups.")
endif()
# Check if elements in MODULE_GROUP_LIST are valid by checking against
@@ -40,6 +45,7 @@ foreach(group_name IN LISTS MODULE_GROUP_LIST)
# message(STATUS "Modules: ${MODULE_GROUP}")
endif()
endforeach()
+message(STATUS "Building groups: ${MODULE_GROUP_LIST}")
# message(STATUS "Expanded module groups: ${FULL_MODULE_GROUP_NAMES}")
# Allow users to specify extra modules to build
[View Less]
Module: kamailio
Branch: master
Commit: 5f55e27aae585c64d3d7983439354b6cc52c26e0
URL: https://github.com/kamailio/kamailio/commit/5f55e27aae585c64d3d7983439354b6…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-24T14:31:10+02:00
modules: readme files regenerated - tls ... [skip ci]
---
Modified: src/modules/tls/README
---
Diff: https://github.com/kamailio/kamailio/commit/5f55e27aae585c64d3d7983439354b6……
[View More]Patch: https://github.com/kamailio/kamailio/commit/5f55e27aae585c64d3d7983439354b6…
---
diff --git a/src/modules/tls/README b/src/modules/tls/README
index b6f8a0c0ba2..ccb67fd4bc3 100644
--- a/src/modules/tls/README
+++ b/src/modules/tls/README
@@ -1661,22 +1661,23 @@ verify_client = optional_no_ca
Control the TLS key logging functionality, available for libssl version
greater than 1.1.0. Its value is composed from bitwise values (can be
made as sum of them):
- * 0 - keys logging inactive
- * 1 (bit 1) - keys logging active
- * 2 (bit 2) - write keys to NOTICE log
- * 4 (bit 3) - write keys to file
+ * 0 - keys logging not enabled
+ * 1 (bit 1) - initialise keys logging
+ * 2 (bit 2) - keys logging active
+ * 4 (bit 3) - write keys to NOTICE log
+ * 8 (bit 4) - write keys to file
The default value: 0.
Example 1.52. Set keylog_mode parameter
...
-modparam("tls", "keylog_mode", 7)
+modparam("tls", "keylog_mode", 15)
...
10.43. keylog_file (str)
Path to the file where to write the TLS keys. The values are appended
- to the content of the file. The value 4 (bit 3) has to be set to
+ to the content of the file. The value 8 (bit 4) has to be set to
keylog_mode parameter.
The default value: NULL.
[View Less]
Module: kamailio
Branch: master
Commit: 24d310e463754d29b60ad919e7fcbd150cfca7f1
URL: https://github.com/kamailio/kamailio/commit/24d310e463754d29b60ad919e7fcbd1…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-24T12:46:10+02:00
modules: readme files regenerated - tls ... [skip ci]
---
Modified: src/modules/tls/README
---
Diff: https://github.com/kamailio/kamailio/commit/24d310e463754d29b60ad919e7fcbd1……
[View More]Patch: https://github.com/kamailio/kamailio/commit/24d310e463754d29b60ad919e7fcbd1…
---
diff --git a/src/modules/tls/README b/src/modules/tls/README
index 3a8f18e5774..b6f8a0c0ba2 100644
--- a/src/modules/tls/README
+++ b/src/modules/tls/README
@@ -73,6 +73,8 @@ Olle E. Johansson
10.39. engine_algorithms (string)
10.40. verify_client (string)
10.41. provider_quirks (integer)
+ 10.42. keylog_mode (int)
+ 10.43. keylog_file (str)
11. Functions
@@ -151,9 +153,11 @@ Olle E. Johansson
1.49. Set rand_engine parameter
1.50. Set verify_client modparam parameter
1.51. Set verify_client tls.cfg parameter
- 1.52. is_peer_verified usage
- 1.53. tls_set_connect_server_id usage
- 1.54. Use of event_route[tls:connection-out]
+ 1.52. Set keylog_mode parameter
+ 1.53. Set keylog_file parameter
+ 1.54. is_peer_verified usage
+ 1.55. tls_set_connect_server_id usage
+ 1.56. Use of event_route[tls:connection-out]
Chapter 1. Admin Guide
@@ -211,6 +215,8 @@ Chapter 1. Admin Guide
10.39. engine_algorithms (string)
10.40. verify_client (string)
10.41. provider_quirks (integer)
+ 10.42. keylog_mode (int)
+ 10.43. keylog_file (str)
11. Functions
@@ -651,6 +657,8 @@ Place holder
10.39. engine_algorithms (string)
10.40. verify_client (string)
10.41. provider_quirks (integer)
+ 10.42. keylog_mode (int)
+ 10.43. keylog_file (str)
10.1. tls_method (string)
@@ -1648,6 +1656,36 @@ verify_client = optional_no_ca
* 1 - create a new `OSSL_LIB_CTX` context in the child process. Known
to be required when using OpenSSL 3 pkcs11-provider.
+10.42. keylog_mode (int)
+
+ Control the TLS key logging functionality, available for libssl version
+ greater than 1.1.0. Its value is composed from bitwise values (can be
+ made as sum of them):
+ * 0 - keys logging inactive
+ * 1 (bit 1) - keys logging active
+ * 2 (bit 2) - write keys to NOTICE log
+ * 4 (bit 3) - write keys to file
+
+ The default value: 0.
+
+ Example 1.52. Set keylog_mode parameter
+...
+modparam("tls", "keylog_mode", 7)
+...
+
+10.43. keylog_file (str)
+
+ Path to the file where to write the TLS keys. The values are appended
+ to the content of the file. The value 4 (bit 3) has to be set to
+ keylog_mode parameter.
+
+ The default value: NULL.
+
+ Example 1.53. Set keylog_file parameter
+...
+modparam("tls", "keylog_file", "/tmp/kamailio-tls-keylog.txt")
+...
+
11. Functions
11.1. is_peer_verified()
@@ -1661,7 +1699,7 @@ verify_client = optional_no_ca
It can be used only in a request route.
- Example 1.52. is_peer_verified usage
+ Example 1.54. is_peer_verified usage
...
if (proto==TLS && !is_peer_verified()) {
sl_send_reply("400", "No certificate or verification failed");
@@ -1680,7 +1718,7 @@ verify_client = optional_no_ca
It can be used only in ANY_ROUTE.
- Example 1.53. tls_set_connect_server_id usage
+ Example 1.55. tls_set_connect_server_id usage
...
tls_set_connect_server_id("clientone");
...
@@ -1772,7 +1810,7 @@ verify_client = optional_no_ca
If drop() is executed in the event route, then the data is no longer
sent over the connection.
- Example 1.54. Use of event_route[tls:connection-out]
+ Example 1.56. Use of event_route[tls:connection-out]
...
event_route[tls:connection-out] {
if($sndto(ip)=="1.2.3.4") {
[View Less]
sergey-safarov created an issue (kamailio/kamailio#4315)
### Description
Use case WebRTC client connected to Kaamilio Edge proxy.
For network connectivity reasons, the flow token may no longer be valid. In this case, behavior should be described in the [RFC5626, 5.3.1 Processing Incoming Requests](https://datatracker.ietf.org/doc/html/rfc5626#section-5.3.1)
> If the flow no longer exists, the proxy SHOULD send a 430 (Flow Failed) response to the request.
Also [9.3 Incoming Call and Proxy …
[View More]Crash](https://datatracker.ietf.org/doc/html/rfc5626#section-9.3)
> Bob's authoritative proxy first tries the flow to EP1, but EP1 no longer has a flow to Bob, so it responds with a 430 (Flow Failed) response.
To get it working, it will be fine to use construction like
```
if (!loose_route()) {
switch($rc) {
case -4:
sl_send_reply("403", "Flow Failed");
exit;
case -2:
sl_send_reply("403", "Forbidden");
exit;
default:
xlog("L_ERR", "in request_route\n");
sl_reply_error();
exit;
}
}
```
Where `loose_route` returns a new error code (`-4` for example). This error code is generated when the flow token points to not existing TCP/TLS/WSS connection.
### Expected behavior
Kamailio `loose_route` allows the check of flow token validity before messages related via non-existent TCP/TLS/WSS connections.
#### Actual observed behavior
For now, Kamailio tries to relay messages to non-existent client connections and generate an error message like
```
477 Unfortunately error on sending to next hop occurred (477/TM)
500 Message processing error (2/TM)
```
#### How to reproduce
Required to start Kamailio with a config like
```
listen=udp:127.0.0.1:5060
listen=tcp:127.0.0.1:5060
loadmodule "pv.so"
loadmodule "xlog.so"
loadmodule "sl.so"
loadmodule "tm.so"
loadmodule "siputils.so"
loadmodule "rr.so"
loadmodule "stun.so"
loadmodule "outbound.so"
modparam("outbound", "force_outbound_flag", 1)
modparam("outbound", "flow_token_secret", "kamailio")
loadmodule "debugger.so"
modparam("debugger", "cfgtrace", 1)
modparam("debugger", "log_level_name", "exec")
request_route {
loose_route();
switch($rc) {
case -3:
xlog("L_ERR", "loose_route code -3\n");
break;
case -2:
xlog("L_ERR", "loose_route code -2\n");
break;
case -1:
xlog("L_ERR", "loose_route code -1\n");
break;
case 1:
xlog("L_ERR", "loose_route code 1\n");
break;
case 2:
xlog("L_ERR", "loose_route code 2\n");
break;
}
record_route();
if (has_totag()) {
t_relay();
} else {
t_relay_to_udp("127.0.0.1", "5080");
}
}
```
Then need to start SIPp server script using the command
```
sipp -sf uas.xml -p 5080 -d 4000 -bind_local 127.0.0.1
```
And then start SIPp client script using the command
```
sipp -sf uac.xml -m 1 -t t1 127.0.0.1
```
Where `uac.xml` and `uas.xml` are attached
[sipp-scripts.tar.gz](https://github.com/user-attachments/files/21187724/sip…
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4315
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4315(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: e49d77af246c52591e76cfdcf0d59970d7349e7e
URL: https://github.com/kamailio/kamailio/commit/e49d77af246c52591e76cfdcf0d5997…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-23T19:46:09+02:00
modules: readme files regenerated - topos ... [skip ci]
---
Modified: src/modules/topos/README
---
Diff: https://github.com/kamailio/kamailio/commit/e49d77af246c52591e76cfdcf0d5997……
[View More]
Patch: https://github.com/kamailio/kamailio/commit/e49d77af246c52591e76cfdcf0d5997…
---
diff --git a/src/modules/topos/README b/src/modules/topos/README
index 60a06f6b705..3f4d931cf26 100644
--- a/src/modules/topos/README
+++ b/src/modules/topos/README
@@ -573,11 +573,14 @@ request_route {
It is executed before doing topology stripping processing for an
outgoing SIP message. If 'drop' is executed inside the event route,
- then the module skips doing the out part of topology hiding.
+ then the module skips doing the outbound part of topology stripping.
- Only fake msg is available in this event route. Inside the event route
- the variables $sndto(ip), $sndto(port) and $sndto(proto) point to the
- destination.
+ The event route is executed with an internal fake SIP message for the
+ purpose of performace (i.e., no parsing of the outgoing message is
+ done), therefore the R-URI, headers and body do not reflect the content
+ of the outgoing message. However, inside the event route the variables
+ $sndto(ip), $sndto(port) and $sndto(proto) point to the real
+ destination of the SIP message.
Example 1.24. Usage of event_route[topos:msg-outgoing]
...
@@ -593,11 +596,14 @@ event_route[topos:msg-outgoing] {
It is executed before doing topology stripping processing for a SIP
message to be sent out, being executed after
event_route[topos:msg-outgoing]. If 'drop' is executed inside the event
- route, then the module skips doing the out part of topology hiding.
+ route, then the module skips doing the outbound part of topology
+ stripping.
- A copy of the SIP msg to be sent out is available in this event route.
- Inside the event route the variables $sndto(ip), $sndto(port) and
- $sndto(proto) point to the destination.
+ A copy of the SIP message to be sent out is made available in this
+ event route, thefore the R-URI, headers and body reflect the content of
+ the outgoing SIP message. Inside the event route the variables
+ $sndto(ip), $sndto(port) and $sndto(proto) point to the real
+ destination of the SIP message.
Example 1.25. Usage of event_route[topos:msg-sending]
...
@@ -612,10 +618,14 @@ event_route[topos:msg-sending] {
It is executed before doing topology stripping processing for an
incoming SIP message. If 'drop' is executed inside this event route,
- then the module skips doing the in part of topology hiding.
+ then the module skips doing the inbound part of topology stripping.
- Only fake msg is available in this event route. $si, $sp and $proto
- will have default fake values.
+ The event route is executed with an internal fake SIP message for the
+ purpose of performace (i.e., no parsing of the incoming message is
+ done), therefore the R-URI, headers and body do not reflect the content
+ of the incoming message. However, inside the event route the variables
+ $si, $sp and $proto point to the real source address of the SIP
+ message, as well as the keywords src_port and dst_port.
Example 1.26. Usage of event_route[topos:msg-incoming]
...
@@ -631,11 +641,13 @@ event_route[topos:msg-incoming] {
It is executed before doing topology stripping processing for a SIP
message that was received, being executed after
event_route[topos:msg-incoing]. If 'drop' is executed inside this event
- route, then the module skips doing the in part of topology hiding.
+ route, then the module skips doing the inbound part of topology hiding.
- A copy of the received SIP msg is available in this event route. $si,
- $sp and $proto will have correct, expected values. Also src_port and
- dst_port can be used here.
+ A copy of the incoming SIP message is made available in this event
+ route, thefore the R-URI, headers and body reflect the content of the
+ incoming SIP message. Inside the event route the variables $si, $sp and
+ $proto point to the real source address of the SIP message, as well as
+ the keywords src_port and dst_port.
Example 1.27. Usage of event_route[topos:msg-receiving]
...
[View Less]
Module: kamailio
Branch: master
Commit: a9d6658862a5d266853456e5201e6e08b7c81de5
URL: https://github.com/kamailio/kamailio/commit/a9d6658862a5d266853456e5201e6e0…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-23T19:01:10+02:00
modules: readme files regenerated - topos ... [skip ci]
---
Modified: src/modules/topos/README
---
Diff: https://github.com/kamailio/kamailio/commit/a9d6658862a5d266853456e5201e6e0……
[View More]
Patch: https://github.com/kamailio/kamailio/commit/a9d6658862a5d266853456e5201e6e0…
---
diff --git a/src/modules/topos/README b/src/modules/topos/README
index 9c82ff026e1..60a06f6b705 100644
--- a/src/modules/topos/README
+++ b/src/modules/topos/README
@@ -573,13 +573,11 @@ request_route {
It is executed before doing topology stripping processing for an
outgoing SIP message. If 'drop' is executed inside the event route,
- then the module skips doing the topology hiding.
+ then the module skips doing the out part of topology hiding.
- Inside the event route the variables $sndto(ip), $sndto(port) and
- $sndto(proto) point to the destination. The SIP message is not the one
- to be sent out, but an internally generated one at startup, to avoid
- reparsing the outgoing SIP message for the cases when topology hiding
- is not wanted.
+ Only fake msg is available in this event route. Inside the event route
+ the variables $sndto(ip), $sndto(port) and $sndto(proto) point to the
+ destination.
Example 1.24. Usage of event_route[topos:msg-outgoing]
...
@@ -594,11 +592,12 @@ event_route[topos:msg-outgoing] {
It is executed before doing topology stripping processing for a SIP
message to be sent out, being executed after
- event_route[topos:msg-outgoing].
+ event_route[topos:msg-outgoing]. If 'drop' is executed inside the event
+ route, then the module skips doing the out part of topology hiding.
+ A copy of the SIP msg to be sent out is available in this event route.
Inside the event route the variables $sndto(ip), $sndto(port) and
- $sndto(proto) point to the destination. The SIP message is the one to
- be sent out.
+ $sndto(proto) point to the destination.
Example 1.25. Usage of event_route[topos:msg-sending]
...
@@ -612,13 +611,11 @@ event_route[topos:msg-sending] {
5.3. event_route[topos:msg-incoming]
It is executed before doing topology stripping processing for an
- incoming SIP message. If 'drop' is executed inside the event route,
- then the module skips doing the topology hiding.
+ incoming SIP message. If 'drop' is executed inside this event route,
+ then the module skips doing the in part of topology hiding.
- Inside the event route the variables $si, $sp and $proto point to the
- source address. The SIP message is not the one to be sent out, but an
- internally generated one at startup, to avoid reparsing the outgoing
- SIP message for the cases when topology hiding is not wanted.
+ Only fake msg is available in this event route. $si, $sp and $proto
+ will have default fake values.
Example 1.26. Usage of event_route[topos:msg-incoming]
...
@@ -633,10 +630,12 @@ event_route[topos:msg-incoming] {
It is executed before doing topology stripping processing for a SIP
message that was received, being executed after
- event_route[topos:msg-incoing].
+ event_route[topos:msg-incoing]. If 'drop' is executed inside this event
+ route, then the module skips doing the in part of topology hiding.
- Inside the event route the variables $si, $sp and $proto point to the
- source address. The SIP message is the one to be sent out.
+ A copy of the received SIP msg is available in this event route. $si,
+ $sp and $proto will have correct, expected values. Also src_port and
+ dst_port can be used here.
Example 1.27. Usage of event_route[topos:msg-receiving]
...
@@ -644,5 +643,13 @@ event_route[topos:msg-receiving] {
if(is_request() and $fU=="alice") {
drop;
}
+
+ if($sp==5555 || $si=="1.2.3.4") {
+ drop;
+ }
+
+ if(src_port==1234 || dst_port==5678) {
+ drop;
+ }
}
...
[View Less]
Updated documentation.
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main …
[View More]components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [X] Commit message has the format required by CONTRIBUTING guide
- [X] Commits are split per component (core, individual modules, libs, utils, ...)
- [X] Each component has a single commit (if not, squash them into one commit)
- [X] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [X] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [X] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Right now if I try to log $sp in event_route[topos:msg-receiving], will have value 0.
Updated documentation too, related to those event routes.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4329
-- Commit Summary --
* topos: expose rcv data in event routes
-- File Changes --
M src/modules/topos/doc/topos_admin.xml (41)
M src/modules/topos/topos_mod.c (6)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4329.patchhttps://github.com/kamailio/kamailio/pull/4329.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4329
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4329(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [x] Related to issue https://kamailio.org/mailman3/hyperkitty/list/sr-users@lists.kamailio.org/t…
#### Description
<!-- Describe your changes in detail -->
This PR fixes the bug when failing to parse a URN scheme with a '@' character in the host name.
- Format of file
- Add some comments on magic numbers
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4336
-- Commit Summary --
* core: Fix urn parsing failing if @ is present
* core: add some comment on the hardcoded numbers
-- File Changes --
M src/core/parser/parse_uri.c (24)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4336.patchhttps://github.com/kamailio/kamailio/pull/4336.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4336
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4336(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [X] Commit message has the format required by CONTRIBUTING guide
- [X] Commits are split per component (core, individual modules, libs, utils, ...)
- [X] Each component has a single commit (if not, squash them into one commit)
- [X] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [X] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Move pinging of rtpengines outside locks, by making a pkg copy of the list. Update shm list afterwards, under locks.
Basically tested by doing "kamcmd rtpengine.reload" while the timer was pinging the rtpengines. More testing will come.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4305
-- Commit Summary --
* rtpengine: timer ping nodes outside locks
-- File Changes --
M src/modules/rtpengine/rtpengine.c (121)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4305.patchhttps://github.com/kamailio/kamailio/pull/4305.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4305
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4305(a)github.com>
[View Less]
NUCLEAR-WAR created an issue (kamailio/kamailio#4291)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing …
[View More]list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
Kamailio is sending wrong P-Associated-URI towards Application Server, when sending 3rd Party Registration:
Kamailio sends:
```
P-Associated-URI: <sip:0912584710@ims.mnc001.mcc001.3gppnetwork.org, tel:0912584710>, <sip:001010000084710@ims.mnc001.mcc001.3gppnetwork.org>
```
ABNF for the Header is (see RFC7315 Section 5.1) :
```
"P‑Associated‑URI" HCOLON [ p‑aso‑uri‑spec ] *( COMMA p‑aso‑uri‑spec )
p-aso-uri-spec =
name‑addr *( SEMI ai‑param )
it looks like an issue in ims_isc module, as other transactions containing this header are not affected.
```
### Troubleshooting
#### Reproduction
Using any version of Kamailio in IMS Setup ( e.g like Docker_open5gs) and enable 3rd Party registration in the associated iFC of the IMS User.
fur testing this particular issue any SIP Server could be user, as we need only to capture the 3rdPty Register only.
Start the registration process and capture the 3rdPty registration after a successful registration with the S-CSCF.
also, would it be possible to have multiple occurrence of this header for each IMPU, that will make it easy to use non complex logic to gather the IMPUs of a user from the AS.
#### Debugging Data
log is long, therefor I attached it to the issue along with a PCAP
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
Session Initiation Protocol (SIP as raw text)
REGISTER sip:mtas.ims.mnc001.mcc001.3gppnetwork.org SIP/2.0
Via: SIP/2.0/UDP 172.22.0.20:6060;branch=z9hG4bK1f1a.2acf13e0000000000000000000000000.0
To: <sip:001010000084710@ims.mnc001.mcc001.3gppnetwork.org>
From: <sip:scscf.ims.mnc001.mcc001.3gppnetwork.org>;tag=577487a47557db6ca47545080fcdadff-3e5eb954
CSeq: 10 REGISTER
Call-ID: 60988901578cff95-50(a)172.22.0.20
Content-Length: 2374
User-Agent: Kamailio S-CSCF
Event: registration
Max-Forwards: 10
Expires: 600120
Path: <sip:scscf.ims.mnc001.mcc001.3gppnetwork.org;lr>,<sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr>
Contact: <sip:scscf.ims.mnc001.mcc001.3gppnetwork.org>
P-Visited-Network-ID: ims.mnc001.mcc001.3gppnetwork.org
P-Access-Network-Info: 3GPP-NR-TDD;utran-cell-id-3gpp=0010100000100066C000
P-Associated-URI: <sip:0912584710@ims.mnc001.mcc001.3gppnetwork.org, tel:0912584710>, <sip:001010000084710@ims.mnc001.mcc001.3gppnetwork.org>
Content-Type: message/sip
REGISTER sip:scscf.ims.mnc001.mcc001.3gppnetwork.org:6060 SIP/2.0
From: <sip:001010000084710@ims.mnc001.mcc001.3gppnetwork.org>;tag=114776405
To: <sip:001010000084710@ims.mnc001.mcc001.3gppnetwork.org>
CSeq: 114776123 REGISTER
Call-ID: 114776122_989640048(a)192.168.101.3
Via: SIP/2.0/UDP 172.22.0.19:4060;branch=z9hG4bKc18d.4d94d35bf6f42b8e538cf9d84cb693d8.0;i=1
Via: SIP/2.0/TCP 172.22.0.21;branch=z9hG4bKc18d.8969a1b752d8220823a5bd82c9199eb9.0;i=7
Via: SIP/2.0/TCP 192.168.101.3:44186;rport=42756;branch=z9hG4bK1511394995
Max-Forwards: 67
[…]Contact: <sip:3259ecc0-e957-4a46-a046-8e9cab307031@192.168.101.3:44186;alias=192.168.101.3~42756~2>;+g.3gpp.accesstype="cellular2";+sip.instance="<urn:gsma:imei:86401006-018500-0>";audio;+g.3gpp.nw-init-ussi;+g.3gpp.smsip;video;+g.3g
P-Access-Network-Info: 3GPP-NR-TDD;utran-cell-id-3gpp=0010100000100066C000
Security-Verify: ipsec-3gpp;q=0.1;prot=esp;mod=trans;spi-c=4098;spi-s=4099;port-c=5101;port-s=6101;alg=hmac-sha-1-96;ealg=null
Expires: 600000
Proxy-Require: sec-agree
Allow: INVITE,BYE,CANCEL,ACK,NOTIFY,UPDATE,PRACK,INFO,MESSAGE,OPTIONS
[…]Authorization: Digest username="001010000084710(a)ims.mnc001.mcc001.3gppnetwork.org",realm="ims.mnc001.mcc001.3gppnetwork.org",uri="sip:ims.mnc001.mcc001.3gppnetwork.org",qop=auth,nonce="ferAjDMunr0os568G1AocOd/sdY+MoAA+PTh/ISdKLo=",nc
User-Agent: Xiaomi_Redmi Note 12 5G_OS2.0.1.0.UMQEUXM
[…]Security-Client: ipsec-3gpp; alg=hmac-md5-96; ealg=des-ede3-cbc; spi-c=4176830254; spi-s=4255578078; port-c=42756; port-s=44186,ipsec-3gpp; alg=hmac-md5-96; ealg=aes-cbc; spi-c=4176830254; spi-s=4255578078; port-c=42756; port-s=44186
Content-Length: 0
Path: <sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr>
Supported: path
Require: path
P-Visited-Network-ID: ims.mnc001.mcc001.3gppnetwork.org
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
Used in the test :
```
version: kamailio 6.1.0-dev0 (x86_64/linux) ba1369
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, 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_SEND_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: ba1369
compiled on 22:21:16 Mar 18 2025 with gcc 9.4.0
[scscf.log](https://github.com/user-attachments/files/20852988/scscf.log)
[kamailio_wrong_PAU.zip](https://github.com/user-attachments/files/20852989/…
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
Kamailio runs in Docker, with the following info from the container:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
Linux 2b805b1de581 6.8.0-62-generic #65-Ubuntu SMP PREEMPT_DYNAMIC Mon May 19 17:15:03 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4291
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4291(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [x] Related to issue #4321
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4334
-- Commit Summary --
* dialog: docs: Remove dlg_flag related mentions
-- File Changes --
M src/modules/dialog/doc/dialog_admin.xml (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4334.patchhttps://github.com/kamailio/kamailio/pull/4334.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4334
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4334(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [ ] Tested changes locally
#### Description
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4335
-- Commit Summary --
* ims_ipsec_pcscf: fill_contact() build AOR from VIA as fallback on SIP_REPLY
-- File Changes --
M src/modules/ims_ipsec_pcscf/cmd.c (39)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4335.patchhttps://github.com/kamailio/kamailio/pull/4335.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4335
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4335(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 7edec9ec8420f9239134f408e6c829e299b4d213
URL: https://github.com/kamailio/kamailio/commit/7edec9ec8420f9239134f408e6c829e…
Author: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Committer: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Date: 2025-07-22T15:17:03+02:00
cdp: added support for Min-Requested-Bandwidth-[DU]L AVPs
From 3GPP TS 29.214 version 10.6.0 Release 10:
> 5.3.31 Min-Requested-Bandwidth-DL AVP
> The Min-…
[View More]Requested-Bandwidth-DL AVP (AVP code 534) is of type Unsigned32, and it indicates the minimum
> requested bandwidth in bits per second for a downlink IP flow. The bandwidth contains all the overhead coming from
> the IP-layer and the layers above, e.g. IP, TCP, UDP, HTTP, RTP and RTP payload.
> When provided in an AA-Request, it indicates the minimum requested bandwidth.
>
> 5.3.32 Min-Requested-Bandwidth-UL AVP
> The Min-Requested-Bandwidth-UL AVP (AVP code 535) is of type Unsigned32, and it indicates the minimum
> requested bandwidth in bits per second for an uplink IP flow. The bandwidth contains all the overhead coming from the
> IP-layer and the layers above, e.g. IP, TCP, UDP, HTTP, RTP and RTP payload.
> When provided in an AA-Request, it indicates the minimum requested bandwidth.
---
Modified: src/modules/cdp/diameter_epc_code_avp.h
---
Diff: https://github.com/kamailio/kamailio/commit/7edec9ec8420f9239134f408e6c829e…
Patch: https://github.com/kamailio/kamailio/commit/7edec9ec8420f9239134f408e6c829e…
---
diff --git a/src/modules/cdp/diameter_epc_code_avp.h b/src/modules/cdp/diameter_epc_code_avp.h
index 186b75fe678..7c294bf21d1 100644
--- a/src/modules/cdp/diameter_epc_code_avp.h
+++ b/src/modules/cdp/diameter_epc_code_avp.h
@@ -112,6 +112,8 @@ enum
AVP_EPC_Service_URN = 525,
AVP_EPC_Acceptable_Service_Info = 526,
AVP_EPC_Service_Info_Status = 527,
+ AVP_EPC_Min_Requested_Bandwidth_DL = 534,
+ AVP_EPC_Min_Requested_Bandwidth_UL = 535,
/** 600 to 699 reserved for TS29.229 */
/** 700 to 799 reserved for TS29.329 */
[View Less]
sergey-safarov created an issue (kamailio/kamailio#4333)
### Description
I want to compile Kamailio sources on `ppc64le` arch.
During compilation, I see an error
```sh
[ 0%] Building C object src/CMakeFiles/kamailio.dir/main.c.o
In file included from /tmp/kamailio/src/core/parser/../mem/../lock_ops.h:92,
from /tmp/kamailio/src/core/parser/../mem/shm.h:44,
from /tmp/kamailio/src/core/parser/../mem/shm_mem.h:32,
from /tmp/kamailio/src/core/…
[View More]parser/../ut.h:46,
from /tmp/kamailio/src/core/parser/../ip_addr.h:41,
from /tmp/kamailio/src/core/parser/msg_parser.h:39,
from /tmp/kamailio/src/core/select.h:36,
from /tmp/kamailio/src/core/route_struct.h:35,
from /tmp/kamailio/src/core/route.h:39,
from /tmp/kamailio/src/main.c:79:
/tmp/kamailio/src/core/parser/../mem/../fastlock.h:130:2: error: #error "unknown architecture"
130 | #error "unknown architecture"
| ^~~~~
/tmp/kamailio/src/core/parser/../mem/../fastlock.h: In function ‘tsl’:
/tmp/kamailio/src/core/parser/../mem/../fastlock.h:294:2: error: #error "unknown architecture"
294 | #error "unknown architecture"
| ^~~~~
/tmp/kamailio/src/core/parser/../mem/../fastlock.h: In function ‘get_lock’:
/tmp/kamailio/src/core/parser/../mem/../fastlock.h:317:9: error: implicit declaration of function ‘membar_getlock’ [-Wimplicit-function-declaration]
317 | membar_getlock();
| ^~~~~~~~~~~~~~
/tmp/kamailio/src/core/parser/../mem/../fastlock.h: In function ‘release_lock’:
/tmp/kamailio/src/core/parser/../mem/../fastlock.h:436:2: error: #error "unknown architecture"
436 | #error "unknown architecture"
| ^~~~~
In file included from /tmp/kamailio/src/core/atomic_ops.h:180,
from /tmp/kamailio/src/core/locking.h:74,
from /tmp/kamailio/src/core/rpc.h:36,
from /tmp/kamailio/src/core/sr_module.h:38,
from /tmp/kamailio/src/main.c:85:
/tmp/kamailio/src/core/atomic/atomic_unknown.h: At top level:
/tmp/kamailio/src/core/atomic/atomic_unknown.h:53:2: warning: #warning no native memory barrier implementations, falling back to slow lock based workaround [-Wcpp]
53 | #warning no native memory barrier implementations, falling back to slow lock \
| ^~~~~~~
gmake[2]: *** [src/CMakeFiles/kamailio.dir/build.make:76: src/CMakeFiles/kamailio.dir/main.c.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:3359: src/CMakeFiles/kamailio.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2
```
### Expected behavior
Sources compiled without error messages.
#### Actual observed behavior
Build failed be error described above.
### Reproduction
```sh
git clone https://github.com/kamailio/kamailio.git
docker run -it \
--platform linux/ppc64le \
-v ./kamailio:/usr/src/kamailio \
ghcr.io/sergey-safarov/kamailio-builder:centos-10
cd /usr/src/kamailio
cmake -S . -B build
cmake --build build
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4333
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4333(a)github.com>
[View Less]
dilyanpalauzov created an issue (kamailio/kamailio#4317)
In the 6.0 branch the FLAVOUR option allows in cmake-gui (ccmake) setting `kamailio` as only option. As it is no-op, it should not be displayed in cmake-gui.
The option MODULE_GROUP_NAME is documented as „Group of modules to build (one or multiple space seperated group)“. In cmake-gui it allows with enter to toggle between several values: DEFAULT, STANDARD, COMMON, KSTANDARD, KMINI, KPCRE, KMYSQL, KPOSTGRES, …. Using ccmake it is not …
[View More]possible to to set multiple values. The help string should mention all possible values. It should be plural: groups.
The options in ccmake-gui `XSLT_VALIDATE,` and `XSLT_VERBOSE,` have a comma in their names too much.
The option `CMAKE_BUILD_TYPE` allows in Kamailio toggling between four possible values: Debug, Release, MinSizeRel and RelWithDebInfo. ClamAV adds one more value for cmake-gui: `None`. This toggling is not yet available in the build system of cmake (when building cmake using cmake) - https://gitlab.kitware.com/cmake/cmake/-/issues/26434 . Is it reasonable to have for CMAKE_BUILD_TYPE also `None` as permitted value? I do not know the answer, that is why I am raising this question.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4317
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4317(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 7f6b626e45ee1a51785bb3e4ccd7fd03e41c0eb2
URL: https://github.com/kamailio/kamailio/commit/7f6b626e45ee1a51785bb3e4ccd7fd0…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-03T08:31:10+02:00
modules: readme files regenerated - dispatcher ... [skip ci]
---
Modified: src/modules/dispatcher/README
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]7f6b626e45ee1a51785bb3e4ccd7fd0…
Patch: https://github.com/kamailio/kamailio/commit/7f6b626e45ee1a51785bb3e4ccd7fd0…
---
diff --git a/src/modules/dispatcher/README b/src/modules/dispatcher/README
index 13360188fe1..e57da8f2f28 100644
--- a/src/modules/dispatcher/README
+++ b/src/modules/dispatcher/README
@@ -1277,6 +1277,9 @@ With congestion control the formula becomes :
+ “64” - round-robin (next destination) with over load control
(destination record is skipped based on over load control
rate).
+ + “14” - round-robin (4) if all the destinations in the group
+ have the same priority and the priority is greater than 0,
+ otherise serial dispatching (8).
+ “X” - if the algorithm is not implemented, the first entry in
set is chosen.
* limit - the maximum number of items to be stored in XAVP list for
[View Less]
giupand created an issue (kamailio/kamailio#4330)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
…
[View More] * https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
Hi, I have a question about the dispatcher OPTIONS keepalive in Kamailio version 5.6.1.
I have a dispatcher configuration that probes two destinations with the same destination URI but using different sockets (see the database below), and the OPTIONS keepalive is enabled (status AP).
When the first destination (ID 27) goes down, its status changes to IP, and the second destination remains in AP.
However, when the second destination (ID 28) goes down, its status remains in AP, and the event_route[dispatcher:dst-down] does not seem to trigger.
```
+----+-------+------------------------+-------+----------+----------------------------------------------------------------------------------------------------------------+----------------+
| id | setid | destination | flags | priority | attrs | description |
+----+-------+------------------------+-------+----------+----------------------------------------------------------------------------------------------------------------+----------------+
| 27 | 29 | sip:192.168.2.222:5060 | 2 | 21 | ping_from=sip:27@domain.com;socket=udp:192.168.2.250:5060 | |
| 28 | 29 | sip:192.168.2.222:5060 | 2 | 12 | ping_from=sip:28@domain.com;socket=udp:192.168.2.246:5060 | |
+----+-------+------------------------+-------+----------+----------------------------------------------------------------------------------------------------------------+----------------+
```
Wathcing the dispatcher code in Kamailio 5.6.1, I noticed that in the ds_update_state function, there is a loop over the dlist that performs a match on the destination using the input address parameter.
```
int ds_update_state(sip_msg_t *msg, int group, str *address, int state,ds_rctx_t *rctx)
[...]
while(i < idx->nr) {
if(idx->dlist[i].uri.len == address->len
&& strncasecmp(idx->dlist[i].uri.s, address->s, address->len) == 0) {
[...]
```
With the current database configuration, I believe the match is found only for the first entry (ID 27), and not for the second entry (ID 28). **As a result, the status update doesn't seem to work for the second destination.**
Is this a bug, or is there something wrong with my configuration?
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
(paste your debugging data here)
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
version: kamailio 5.6.1 (x86_64/linux)
flags: USE_TCP, USE_TLS, 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
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.
```
(paste your output here)
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
(paste your output here)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4330
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4330(a)github.com>
[View Less]
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
* https://lists.kamailio.org/mailman3/postorius/…
[View More]lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
We are now using kamailio on the edge as a presence proxy to scale presence. We have 3 internal kamailio instances handling the actual subscriptions and publishing. This works well, however, once per 24-36hours we experience a crash on the border proxy instance. We did not experience this when using the border proxy as a presence server (there was no proxying SUBSCRIBE).
### Troubleshooting
#### Reproduction
I believe this is happening when a customers network randomly experiences issues where it doesn't receive our replies to subscribes (and continues to send a subscribe). Logs are below.
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
Here's the output while replacing any sensitive info in the payload.
```
GNU gdb (Debian 13.1-3) 13.1
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/sbin/kamailio...
Reading symbols from /usr/lib/debug/.build-id/ce/c19d0ed1a928e4e25a84ae20d77e9c904a4892.debug...
warning: Can't open file /dev/zero (deleted) during file-backed mapping note processing
[New LWP 26]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `kamailio -DD -E -m 8000 -M 512 -f /etc/kamailio/kamailio.cfg -P /var/run/kamail'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 via_builder (len=len@entry=0x7ffed7e3ecb8, msg=msg@entry=0x7ff9529548b0, send_info=send_info@entry=0x7ff764d20bb0, branch=branch@entry=0x7ffed7e3ecc0, extra_params=0x0,
hp=hp@entry=0x7ffed7e3ebb0) at core/msg_translator.c:2910
2910 core/msg_translator.c: No such file or directory.
(gdb) bt full
#0 via_builder (len=len@entry=0x7ffed7e3ecb8, msg=msg@entry=0x7ff9529548b0, send_info=send_info@entry=0x7ff764d20bb0, branch=branch@entry=0x7ffed7e3ecc0, extra_params=0x0,
hp=hp@entry=0x7ffed7e3ebb0) at core/msg_translator.c:2910
via_len = <optimized out>
extra_len = <optimized out>
line_buf = <optimized out>
max_len = <optimized out>
via_prefix_len = <optimized out>
address_str = <optimized out>
port_str = 0x0
send_sock = 0x0
comp_len = <optimized out>
comp_name_len = <optimized out>
port = <optimized out>
proto = <optimized out>
ip = {af = 536870912, len = 0, u = {addrl = {534820896, 1586192}, addr32 = {534820896, 0, 1586192, 0}, addr16 = {47136, 8160, 0, 0, 13328, 24, 0, 0},
addr = " \270\340\037\000\000\000\000\0204\030\000\000\000\000"}}
from = 0x0
local_addr = {s = {sa_family = 16, sa_data = "#\000\000\000\000\000\020\000\000\000\000\000\000"}, sin = {sin_family = 16, sin_port = 35, sin_addr = {s_addr = 0},
sin_zero = "\020\000\000\000\000\000\000"}, sin6 = {sin6_family = 16, sin6_port = 35, sin6_flowinfo = 0, sin6_addr = {__in6_u = {
__u6_addr8 = "\020\000\000\000\000\000\000\000\003\000\000\000\000\000\000", __u6_addr16 = {16, 0, 0, 0, 3, 0, 0, 0}, __u6_addr32 = {16, 0, 3, 0}}},
sin6_scope_id = 3000082688}, sas = {ss_family = 16,
__ss_padding = "#\000\000\000\000\000\020\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\241\321\262cg\357`@\000\000\000\000\000\000\000X\f-\177!V\000\000\020\016\217R\371\177\000\000\001\000\000\000!V\000\000*\000\000\000\000\000\000\000\001\000\000\000\376\177\000\000\004\360;\177!V\000\000\250,A\177!V\000\000\000\355\343\327\376\177\000\000\000\241\321\262cg\357`h\256\006R\371\177\000", __ss_align = 94701866020241}}
con = 0x0
rxavp = 0x0
xname = {s = 0x0, len = -2141140176}
__func__ = "via_builder"
#1 0x000056217f155030 in create_via_hf (len=len@entry=0x7ffed7e3ecb8, msg=msg@entry=0x7ff9529548b0, send_info=send_info@entry=0x7ff764d20bb0, branch=branch@entry=0x7ffed7e3ecc0)
at core/msg_translator.c:3232
via = <optimized out>
extra_params = {s = 0x0, len = 0}
hp = {host = 0x56217f4fb380 <default_global_address>, port = 0x56217f4fb370 <default_global_port>}
sbuf = "\331\023\000\000\001", '\000' <repeats 18 times>
--Type <RET> for more, q to quit, c to continue without paging--info locals
slen = <optimized out>
xparams = <optimized out>
id_buf = <optimized out>
id_len = 0
__func__ = "create_via_hf"
__llevel = <optimized out>
__kld = <optimized out>
#2 0x000056217f1592f7 in build_req_buf_from_sip_req (msg=msg@entry=0x7ff9529548b0, returned_len=returned_len@entry=0x7ffed7e3eeac, send_info=send_info@entry=0x7ff764d20bb0,
mode=mode@entry=128) at core/msg_translator.c:2096
len = 581
new_len = <optimized out>
received_len = 0
rport_len = 0
uri_len = 0
via_len = 0
body_delta = 0
line_buf = 0x0
received_buf = 0x0
rport_buf = 0x0
new_buf = 0x0
buf = 0x56217f5866c0 <buf> "SUBSCRIBE sip:74@sip.domain.co SIP/2.0\r\nVia: SIP/2.0/UDP 12.171.207.82:25744;branch=z9hG4bK1805670803;rport\r\nFrom: \"Heather Myers\" <sip:1086448@sip.domain.co>;tag=1805518213\r\nTo: <sip:74@sip.domain.co>\r\nCa"...
path_buf = {s = 0x0, len = 0}
offset = 0
s_offset = 0
size = <optimized out>
via_anchor = 0x7ff952951300
via_lump = <optimized out>
via_rm = <optimized out>
via_insert_param = 0x0
path_anchor = <optimized out>
path_lump = <optimized out>
branch = {s = 0x7ff952954ed8 "z9hG4bKc7ed.5819b4295fe83f981a2fc19b7f739d7e.0", len = 46}
flags = 262273
--Type <RET> for more, q to quit, c to continue without paging--list
udp_mtu = <optimized out>
di = {send_sock = 0x0, to = {s = {sa_family = 18608, sa_data = "\225R\371\177\000\000\002\000\023\331\n4\001\r"}, sin = {sin_family = 18608, sin_port = 21141, sin_addr = {
s_addr = 32761}, sin_zero = "\002\000\023\331\n4\001\r"}, sin6 = {sin6_family = 18608, sin6_port = 21141, sin6_flowinfo = 32761, sin6_addr = {__in6_u = {
__u6_addr8 = "\002\000\023\331\n4\001\r\000\000\000\000\000\000\000", __u6_addr16 = {2, 55571, 13322, 3329, 0, 0, 0, 0}, __u6_addr32 = {3641901058, 218182666, 0, 0}}},
sin6_scope_id = 0}, sas = {ss_family = 18608, __ss_padding = "\225R\371\177\000\000\002\000\023\331\n4\001\r", '\000' <repeats 103 times>, __ss_align = 0}}, id = 0,
send_flags = {f = 0, blst_imask = 0}, proto = 0 '\000', proto_pad0 = 0 '\000', proto_pad1 = 0}
ret = <optimized out>
__func__ = "build_req_buf_from_sip_req"
error00 = <optimized out>
#3 0x00007ff951fbe90d in prepare_new_uac (t=t@entry=0x7ff764d20880, i_req=i_req@entry=0x7ff9529548b0, branch=branch@entry=0, uri=<optimized out>, uri@entry=0x7ff9529548e8,
path=<optimized out>, path@entry=0x7ff952954f60, next_hop=<optimized out>, fsocket=0x7ff9528f0e10, snd_flags=..., fproto=<optimized out>, flags=<optimized out>,
instance=<optimized out>, ruid=<optimized out>, location_ua=<optimized out>) at ./src/modules/tm/t_fwd.c:482
shbuf = 0x0
add_rm_backup = <optimized out>
body_lumps_backup = <optimized out>
parsed_uri_bak = {user = {
s = 0x56217f5866ce <buf+14> "74(a)sip.domain.co SIP/2.0\r\nVia: SIP/2.0/UDP 12.171.207.82:25744;branch=z9hG4bK1805670803;rport\r\nFrom: \"Heather Myers\" <sip:1086448@sip.domain.co>;tag=1805518213\r\nTo: <sip:74@sip.domain.co>\r\nCall-ID: 0_18056"..., len = 2}, passwd = {s = 0x0, len = 0}, host = {
s = 0x56217f5866d1 <buf+17> "sip.domain.co SIP/2.0\r\nVia: SIP/2.0/UDP 12.171.207.82:25744;branch=z9hG4bK1805670803;rport\r\nFrom: \"Heather Myers\" <sip:1086448@sip.domain.co>;tag=1805518213\r\nTo: <sip:74@sip.domain.co>\r\nCall-ID: 0_18056078"..., len = 11}, port = {s = 0x0, len = 0}, params = {s = 0x0, len = 0}, sip_params = {s = 0x0, len = 0}, headers = {
s = 0x0, len = 0}, port_no = 0, proto = 0, type = SIP_URI_T, flags = 0, transport = {s = 0x0, len = 0}, ttl = {s = 0x0, len = 0}, user_param = {s = 0x0, len = 0}, maddr = {
s = 0x0, len = 0}, method = {s = 0x0, len = 0}, lr = {s = 0x0, len = 0}, r2 = {s = 0x0, len = 0}, gr = {s = 0x0, len = 0}, transport_val = {s = 0x0, len = 0}, ttl_val = {
s = 0x0, len = 0}, user_param_val = {s = 0x0, len = 0}, maddr_val = {s = 0x0, len = 0}, method_val = {s = 0x0, len = 0}, lr_val = {s = 0x0, len = 0}, r2_val = {s = 0x0,
len = 0}, gr_val = {s = 0x0, len = 0}}
ret = -1
len = 32761
parsed_uri_ok_bak = <optimized out>
free_new_uri = 1
msg_uri_bak = {s = 0x0, len = 0}
dst_uri_bak = {s = 0x7ff9529525f0 "sip:10.52.1.13:5081", len = 19}
dst_uri_backed_up = 1
path_bak = {s = 0x0, len = 0}
free_path = 1
instance_bak = {s = 0x0, len = 0}
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
ERROR 2025-01-10T06:00:31.847348563Z [resource.labels.containerName: kamailio] 8(28) CRITICAL: {1 1 SUBSCRIBE 0_1907143137(a)192.168.100.28} tm [timer.h:188]: _set_fr_retr(): already added: 0x7ff763e62250 , tl=0x7ff763e62270!!!
ERROR 2025-01-10T06:00:31.847388483Z [resource.labels.containerName: kamailio] 8(28) CRITICAL: {1 1 SUBSCRIBE 0_1907143137(a)192.168.100.28} tm [t_fwd.c:1613]: t_send_branch(): BUG: retransmission already started for: 0x7ff763e62250
ERROR 2025-01-10T06:00:31.847394809Z [resource.labels.containerName: kamailio] 8(28) ERROR: {1 1 SUBSCRIBE 0_1907143137(a)192.168.100.28} sl [sl_funcs.c:428]: sl_reply_error(): stateless error reply used: No error (0/SL)
ERROR 2025-01-10T06:00:31.847400738Z [resource.labels.containerName: kamailio] 8(28) BUG: {1 1 SUBSCRIBE 0_1907143137(a)192.168.100.28} tm [t_lookup.c:2052]: t_unref(): REQ_ERR DELAYED should have been caught much earlier for 0x7ff763e61f70: 24 (hex 18)
ERROR 2025-01-10T06:00:47.346744773Z [resource.labels.containerName: kamailio] 45(65) ERROR: <core> [core/tcp_main.c:4818]: tcpconn_main_timeout(): connect 64.63.142.90:12190 failed (timeout)
ERROR 2025-01-10T06:00:58.274915089Z [resource.labels.containerName: kamailio] 45(65) CRITICAL: <core> [core/pass_fd.c:281]: receive_fd(): EOF on 20
ERROR 2025-01-10T06:01:02.715789076Z [resource.labels.containerName: kamailio] 0(1) ALERT: <core> [main.c:805]: handle_sigs(): child process 26 exited by a signal 11
ERROR 2025-01-10T06:01:02.715827333Z [resource.labels.containerName: kamailio] 0(1) ALERT: <core> [main.c:809]: handle_sigs(): core was generated
ERROR 2025-01-10T06:01:02.718815287Z [resource.labels.containerName: kamailio] 45(65) CRITICAL: <core> [core/pass_fd.c:281]: receive_fd(): EOF on 25
ERROR 2025-01-10T06:01:02.720985493Z [resource.labels.containerName: kamailio] 45(65) CRITICAL: <core> [core/pass_fd.c:281]: receive_fd(): EOF on 23
ERROR 2025-01-10T06:01:02.725450552Z [resource.labels.containerName: kamailio] 45(65) CRITICAL: <core> [core/pass_fd.c:281]: receive_fd(): EOF on 30
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
I can atleast say that when this segfault happens that these logs are always present right before the crash. However, I also see instances of these logs without a crash immediately following.
On the proxy we are doing this is withindlg route to send subscribes to the presence route:
```
if KSR.is_SUBSCRIBE() and KSR.is_myself_ruri() then
-- in-dialog subscribe requests
ksr_route_presence();
KSR.x.exit();
end
```
Any then this is our ksr_route_presence():
```
function ksr_route_presence()
if not KSR.is_SUBSCRIBE() then return 1; end
local fuser = KSR.kx.get_fuser();
if fuser=='' then
KSR.xlog.xinfo('Subscription attempt without username from IP ' .. KSR.kx.get_srcip() .. ' - Rejecting\n');
KSR.sl.sl_send_reply(404, 'Not Found');
KSR.x.exit();
end
KSR.pv.sets('$avp(s:tenant)', string.match(fuser, '-(.*)'));
local setId = '6' .. KSR.kx.get_def('DEFAULT_DISPATCH_SET');
local modeId = '7';
if KSR.dispatcher.ds_select_dst(setId, modeId)<0 then
KSR.sl.send_reply(404, 'No destination');
KSR.x.exit();
end
KSR.corex.set_send_socket(KSR.kx.get_def('PRIVATE_LISTEN_IP') .. ':' .. KSR.kx.get_def('INTERNAL_PORT'));
KSR.tm.t_on_failure('ksr_route_rtf_dispatch');
ksr_route_relay();
end
```
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.8.4 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, 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_SEND_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: unknown
compiled with gcc 12.2.0
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```
```
Linux gke-us-south1-external-sip-800ca69e-qyb3 5.15.0-1048-gke #53-Ubuntu SMP Tue Nov 28 00:39:01 UTC 2023 x86_64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4102
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4102(a)github.com>
[View Less]
QuincyGao created an issue (kamailio/kamailio#4189)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
…
[View More]
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
I used dmq on two machines, registered two softphones on the 111 machine, and then used one phone to call another. After the call was connected, dmq sent a dialog message with an error message 400 bad request.
Here is the 111 config, 113 almost same to 111:
```
loadmodule "dmq.so"
modparam("dmq", "server_address", "sip:172.16.4.111:5464")
modparam("dmq", "server_socket", "udp:172.16.4.111:5464")
modparam("dmq", "notification_address", "sip:172.16.4.113:5464")
modparam("dmq", "notification_channel", "peers")
modparam("dmq", "num_workers", 4)
modparam("dmq", "ping_interval", 30)
loadmodule "dmq_usrloc.so"
modparam("dmq_usrloc", "enable", 1)
modparam("dmq_usrloc", "sync", 1)
modparam("dmq_usrloc", "batch_msg_contacts", 50) # 50 contacts / message
modparam("dmq_usrloc", "batch_size", 10000) # 10000 contacts / batch
modparam("dmq_usrloc", "batch_usleep", 500000)
loadmodule "dialog.so"
modparam("dialog", "enable_stats", 1)
modparam("dialog", "enable_dmq", 1)
...
if (is_method("INVITE")) {
setflag(FLT_ACC); # do accounting
dlg_manage();
}
```
Here is the sip:
<img width="836" alt="Image" src="https://github.com/user-attachments/assets/df609e21-77bb-43e9-a8aa-112069a3…" />
the 113 log error:
```
dialog [dlg_dmq.c:127]: dlg_dmq_handle_msg(): no content length header found
```
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
The inevitable bug
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
(paste your debugging data here)
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
113 log:
22(4389) DEBUG: <core> [core/udp_server.c:708]: udp_rcv_loop(): received on udp socket: (106/100/767) [[KDMQ sip:dialog@172.16.4.113:5464 SIP/2.0 0D 0A Via: SIP/2.0/UDP 172.16.4.111:5464;branch=z9hG4bK28e.2ec7]]
22(4389) DEBUG: <core> [core/receive.c:190]: ksr_evrt_received(): event route core:msg-received not defined
22(4389) DEBUG: <core> [core/parser/parse_fline.c:249]: parse_first_line(): first line type 1 (request) flags 1
22(4389) DEBUG: <core> [core/parser/msg_parser.c:722]: parse_msg(): SIP Request:
22(4389) DEBUG: <core> [core/parser/msg_parser.c:724]: parse_msg(): method: <KDMQ>
22(4389) DEBUG: <core> [core/parser/msg_parser.c:726]: parse_msg(): uri: <sip:dialog@172.16.4.113:5464>
22(4389) DEBUG: <core> [core/parser/msg_parser.c:728]: parse_msg(): version: <SIP/2.0>
22(4389) DEBUG: <core> [core/parser/parse_hname2.c:316]: parse_sip_header_name(): parsed header name [Via] type 1
22(4389) DEBUG: <core> [core/parser/parse_via.c:1312]: parse_via_param(): Found param type 232, <branch> = <z9hG4bK28e.2ec78467000000000000000000000000.0>; state=16
22(4389) DEBUG: <core> [core/parser/parse_via.c:2663]: parse_via(): end of header reached, state=5
22(4389) DEBUG: <core> [core/parser/msg_parser.c:592]: parse_headers(): Via found, flags=2
22(4389) DEBUG: <core> [core/parser/msg_parser.c:594]: parse_headers(): this is the first via
22(4389) DEBUG: <core> [core/parser/parse_hname2.c:316]: parse_sip_header_name(): parsed header name [To] type 3
22(4389) DEBUG: <core> [core/parser/parse_addr_spec.c:904]: parse_addr_spec(): end of header reached, state=10
22(4389) DEBUG: <core> [core/parser/msg_parser.c:173]: get_hdr_field(): <To> [32]; uri=[sip:dialog@172.16.4.113:5464]
22(4389) DEBUG: <core> [core/parser/msg_parser.c:176]: get_hdr_field(): to body (32)[<sip:dialog@172.16.4.113:5464>
], to tag (0)[]
22(4389) DEBUG: <core> [core/parser/parse_hname2.c:316]: parse_sip_header_name(): parsed header name [From] type 4
22(4389) DEBUG: <core> [core/parser/parse_hname2.c:316]: parse_sip_header_name(): parsed header name [CSeq] type 5
22(4389) DEBUG: <core> [core/parser/msg_parser.c:154]: get_hdr_field(): cseq <CSeq>: <10> <KDMQ>
22(4389) DEBUG: <core> [core/parser/parse_hname2.c:316]: parse_sip_header_name(): parsed header name [Call-ID] type 6
22(4389) DEBUG: <core> [core/receive.c:397]: receive_msg(): --- received sip message - request - call-id: [6ecc0d71033645ea-1972(a)172.16.4.111] - cseq: [10 KDMQ]
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| <core> [core/receive.c:263]: ksr_evrt_pre_routing(): event route core:pre-routing not defined
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| <core> [core/receive.c:474]: receive_msg(): preparing to run routing scripts...
22(4389) exec: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| *** cfgtrace:dbg_cfg_trace(): request_route=[DEFAULT_ROUTE] c=[/usr/local/bin/../etc/kamailio/conf/kamailio.cfg] l=584 a=26 n=xlog
22(4389) INFO: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| <script>: 172.16.4.111:5464|172.16.4.113:5464|udp|KDMQ
22(4389) exec: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| *** cfgtrace:dbg_cfg_trace(): request_route=[DEFAULT_ROUTE] c=[/usr/local/bin/../etc/kamailio/conf/kamailio.cfg] l=592 a=16 n=if
22(4389) exec: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| *** cfgtrace:dbg_cfg_trace(): request_route=[DEFAULT_ROUTE] c=[/usr/local/bin/../etc/kamailio/conf/kamailio.cfg] l=589 a=25 n=is_method
22(4389) exec: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| *** cfgtrace:dbg_cfg_trace(): request_route=[DEFAULT_ROUTE] c=[/usr/local/bin/../etc/kamailio/conf/kamailio.cfg] l=590 a=24 n=dmq_process_message
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| dmq [message.c:154]: ki_dmq_process_message_rc(): dmq_handle_message [KDMQ sip:dialog@172.16.4.113:5464]
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| dmq [message.c:168]: ki_dmq_process_message_rc(): dmq_handle_message peer found: dialog
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| <core> [core/parser/parse_addr_spec.c:185]: parse_to_param(): add param: tag=6c399121368d030ed41b62758342ea91-0405b528
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| <core> [core/parser/parse_addr_spec.c:904]: parse_addr_spec(): end of header reached, state=29
22(4389) DEBUG: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| dialog [dlg_dmq.c:124]: dlg_dmq_handle_msg(): dmq message received
22(4389) ERROR: |25-03-26 15:25:01|6ecc0d71033645ea-1972@172.16.4.111| dialog [dlg_dmq.c:127]: dlg_dmq_handle_msg(): no content length header found
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.8.5 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, 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_SEND_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:
compiled on 11:27:01 Mar 21 2025 with gcc 4.8.5
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
centos7.9
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4189
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4189(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: a0a870118a7fdf7993114741eee6e299e9fbb963
URL: https://github.com/kamailio/kamailio/commit/a0a870118a7fdf7993114741eee6e29…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-21T14:31:09+02:00
modules: readme files regenerated - sipdump ... [skip ci]
---
Modified: src/modules/sipdump/README
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]a0a870118a7fdf7993114741eee6e29…
Patch: https://github.com/kamailio/kamailio/commit/a0a870118a7fdf7993114741eee6e29…
---
diff --git a/src/modules/sipdump/README b/src/modules/sipdump/README
index a8cf9a6a544..a5714e7c411 100644
--- a/src/modules/sipdump/README
+++ b/src/modules/sipdump/README
@@ -193,7 +193,7 @@ modparam("sipdump", "wait", 2000)
If set to 1, the module uses a pthread mutex and contion to signal when
SIP messages are available to the writer process. It should use less
- CPU when idle (on no SIP traffic) than the default pooling on timer,
+ CPU when idle (on no SIP traffic) than the default polling on timer,
but be sure that the OS supports process-shared pthread mutexes and
conditions (latest Linux distros have support for them).
[View Less]
Module: kamailio
Branch: master
Commit: f0e1327bd6b01458cda0105929cb2a2d438a2dd7
URL: https://github.com/kamailio/kamailio/commit/f0e1327bd6b01458cda0105929cb2a2…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-21T14:23:17+02:00
sipdump: docs - small typo
---
Modified: src/modules/sipdump/doc/sipdump_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/f0e1327bd6b01458cda0105929cb2a2……
[View More]Patch: https://github.com/kamailio/kamailio/commit/f0e1327bd6b01458cda0105929cb2a2…
---
diff --git a/src/modules/sipdump/doc/sipdump_admin.xml b/src/modules/sipdump/doc/sipdump_admin.xml
index f8627d192b6..c345a389b1b 100644
--- a/src/modules/sipdump/doc/sipdump_admin.xml
+++ b/src/modules/sipdump/doc/sipdump_admin.xml
@@ -145,7 +145,7 @@ modparam("sipdump", "wait", 2000)
<para>
If set to 1, the module uses a pthread mutex and contion to signal
when SIP messages are available to the writer process. It should
- use less CPU when idle (on no SIP traffic) than the default pooling
+ use less CPU when idle (on no SIP traffic) than the default polling
on timer, but be sure that the OS supports process-shared pthread
mutexes and conditions (latest Linux distros have support for them).
</para>
[View Less]
Module: kamailio
Branch: master
Commit: 90ee1c6684495a6050e002d228a434e00274dd1b
URL: https://github.com/kamailio/kamailio/commit/90ee1c6684495a6050e002d228a434e…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-21T12:42:32+02:00
sipdump: docs for parameter wait_mode
---
Modified: src/modules/sipdump/doc/sipdump_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]90ee1c6684495a6050e002d228a434e…
Patch: https://github.com/kamailio/kamailio/commit/90ee1c6684495a6050e002d228a434e…
---
diff --git a/src/modules/sipdump/doc/sipdump_admin.xml b/src/modules/sipdump/doc/sipdump_admin.xml
index 3bcdc31fc46..f8627d192b6 100644
--- a/src/modules/sipdump/doc/sipdump_admin.xml
+++ b/src/modules/sipdump/doc/sipdump_admin.xml
@@ -123,7 +123,8 @@ modparam("sipdump", "mode", 3)
<section id="sipdump.p.wait">
<title><varname>wait</varname> (int)</title>
<para>
- Wait time (microseconds) when no SIP traffic is received.
+ Wait time (microseconds) when no SIP traffic is received
+ (for wait_time = 0).
</para>
<para>
<emphasis>
@@ -136,6 +137,29 @@ modparam("sipdump", "mode", 3)
...
modparam("sipdump", "wait", 2000)
...
+</programlisting>
+ </example>
+ </section>
+ <section id="sipdump.p.wait_mode">
+ <title><varname>wait_mode</varname> (int)</title>
+ <para>
+ If set to 1, the module uses a pthread mutex and contion to signal
+ when SIP messages are available to the writer process. It should
+ use less CPU when idle (on no SIP traffic) than the default pooling
+ on timer, but be sure that the OS supports process-shared pthread
+ mutexes and conditions (latest Linux distros have support for them).
+ </para>
+ <para>
+ <emphasis>
+ Default value is 0.
+ </emphasis>
+ </para>
+ <example>
+ <title>Set <varname>wait_mode</varname> parameter</title>
+ <programlisting format="linespecific">
+...
+modparam("sipdump", "wait_mode", 1)
+...
</programlisting>
</example>
</section>
@@ -360,4 +384,3 @@ route[TCLEAN] {
</section>
</chapter>
-
[View Less]
Module: kamailio
Branch: master
Commit: ffbc4ba201211f06683f0ddf95a526cb59101cab
URL: https://github.com/kamailio/kamailio/commit/ffbc4ba201211f06683f0ddf95a526c…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-21T12:42:32+02:00
tm: docs updated with flags parameter for t_relay_to_proxy()
---
Modified: src/modules/tm/doc/functions.xml
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]ffbc4ba201211f06683f0ddf95a526c…
Patch: https://github.com/kamailio/kamailio/commit/ffbc4ba201211f06683f0ddf95a526c…
---
diff --git a/src/modules/tm/doc/functions.xml b/src/modules/tm/doc/functions.xml
index 715e564e9ed..6810e4c1acf 100644
--- a/src/modules/tm/doc/functions.xml
+++ b/src/modules/tm/doc/functions.xml
@@ -1741,15 +1741,16 @@ t_relay_to("0x01");
<section id="tm.f.t_relay_to_proxy">
<title>
- <function>t_relay_to_proxy(proxy)</function>
+ <function>t_relay_to_proxy(proxy [, flags])</function>
</title>
<para>
Alternative function to relay the SIP request to a specific address,
with the parameter supporting variables inside it.
</para>
<para>
- The format of the parameter is: "proto:host:port" - any of proto or port
- can be omitted, along with the semicolon after or before.
+ The format of the proxy parameter is: "proto:host:port" - any of proto
+ or port can be omitted, along with the semicolon after or before. The
+ flags parameter is optional, with possible values like for t_relay_to().
</para>
<para>
The function can be used in REQUEST_ROUTE and FAILURE_ROUTE.
[View Less]
furmur created an issue (kamailio/kamailio#4331)
have a question about EWMA formula in the `dispatcher` module.
[documentation](https://www.kamailio.org/docs/modules/devel/modules/dispatch… for `ds_latency_estimator_alpha` points to this [explanation](https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc324.h…
which specifies EWMA formula as: $EWMA_t = \lambda*Y_t + (1 - \lambda) * EWMA_{t-1}$
related code at [`src/modules/dispatcher/dispatch.c`](https://github.com/kamailio/kamailio/…
[View More]blob/master/src/modules/dispatcher/dispatch.c#L3191):
```
static inline void latency_stats_update(
ds_latency_stats_t *latency_stats, int latency)
{
...
/* exponentially weighted moving average */
if(latency_stats->count < 10) {
latency_stats->estimate = latency_stats->average;
} else {
latency_stats->estimate =
latency_stats->estimate * ds_latency_estimator_alpha
+ latency * (1 - ds_latency_estimator_alpha);
}
```
so:
* `latency_stats->estimate` is $EWMA$,
* `ds_latency_estimator_alpha` is $\lambda\$.
* `latency` is $Y_t$
looks like `latency_stats->estimate` and `latency` are swapped regarding to the formula and as a result higher `ds_latency_estimator_alpha` will rate old average over the actual latency value and that contradicts both `dispatcher` module documentation and meaning in the referenced formula.
i believe that code should be:
```
latency_stats->estimate =
latency * ds_latency_estimator_alpha
+ latency_stats->estimate * (1 - ds_latency_estimator_alpha);
```
could someone verify those observations? will make PR if i am not mistaken.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4331
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4331(a)github.com>
[View Less]
whosgonna created an issue (kamailio/kamailio#4332)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
…
[View More]
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
We received a INVITE with non-ascii characters in the authentication username. The character set and collation of the subscriber table is `latin1` and `latin1_swedish_ci`. This generated the following failure (DB connection names are `primary` and `secondary`):
```
3(9) ERROR: db_mysql [km_dbase.c:127]: db_mysql_submit_query(): driver error on query: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' (1267)
3(9) ERROR: <core> [lib/srdb1/db_query.c:158]: db_do_query_internal(): error while submitting query
3(9) WARNING: db_cluster [dbcl_api.c:513]: db_cluster_query(): serial operation - failure on cluster [db] (9/0) [primary]
3(9) ERROR: db_mysql [km_dbase.c:127]: db_mysql_submit_query(): driver error on query: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' (1267)
3(9) ERROR: <core> [lib/srdb1/db_query.c:158]: db_do_query_internal(): error while submitting query
3(9) WARNING: db_cluster [dbcl_api.c:513]: db_cluster_query(): serial operation - failure on cluster [db] (8/0) [secondary]
3(9) ERROR: db_cluster [dbcl_api.c:513]: db_cluster_query(): no successful read on cluster [db]
3(9) ERROR: auth_db [authorize.c:180]: get_ha1(): failed to query database
3(9) ERROR: [DIGEST_AUTH 60e4abd540674d4aa8961d380411585e(a)0.0.0.0 INVITE-124524] Generic failure in authentication. Send '503 Server Error' and exit.
```
While using the limited character set in the database (and it's associated collation) is questionable, and I don't expect the query to succeed, the issue is that this single query failure is causing the connections to be disabled in the db_cluster.
### Troubleshooting
#### Reproduction
I haven't tried to reproduce this, but I would assume it's easy to do. I can probably mock it up in docker fairly quickly. As a safety measure, I'll be validating the field with `is_alphanum()`
#### Log Messages
(as in description)
#### SIP Traffic
The `Username` in the `Proxy-Authorization` header as "\uFEFF1011". As hex it's:
```
22 ef bb bf 31 30 31 31 22
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 6.0.1 (aarch64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT-NOSMP, 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_SEND_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: unknown
compiled on 18:45:18 Mar 14 2025 with gcc 14.2.0
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
Container:
```
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.21.2
PRETTY_NAME="Alpine Linux v3.21"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
```
Host:
```
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
```
Kernel (`uname -a)`:
```
Linux use2apocor01.n.fl.gg 6.1.56-82.125.amzn2023.aarch64 #1 SMP Tue Oct 10 17:03:29 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4332
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4332(a)github.com>
[View Less]
Module: kamailio
Branch: 5.8
Commit: 2e2045af9947802d03d7381a10ef3e1c4db8946e
URL: https://github.com/kamailio/kamailio/commit/2e2045af9947802d03d7381a10ef3e1…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-18T10:01:26+02:00
modules: readme files regenerated - modules ... [skip ci]
---
Modified: src/modules/ims_registrar_scscf/README
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]2e2045af9947802d03d7381a10ef3e1…
Patch: https://github.com/kamailio/kamailio/commit/2e2045af9947802d03d7381a10ef3e1…
---
diff --git a/src/modules/ims_registrar_scscf/README b/src/modules/ims_registrar_scscf/README
index 100ea1e657c..5ef62cbb0e1 100644
--- a/src/modules/ims_registrar_scscf/README
+++ b/src/modules/ims_registrar_scscf/README
@@ -682,7 +682,7 @@ switch ($retcode) {
4.8. reg_fetch_contacts(domain, uri, profile)
The function fetches the contacts for 'uri' from table 'domain' to
- pseudo-variable $imssulc(profile) [imssulc = ims scscf ulc].
+ pseudo-variable $ulc(profile) [ulc = ims scscf ulc].
Meaning of the parameters is as follows:
* domain - Name of table that should be used for the lookup of
@@ -690,8 +690,8 @@ switch ($retcode) {
* uri - The SIP URI address of the user which to fetch the contact
addresses for. It can contain pseudo-variables that are evaluated
at runtime.
- * profile - Name of $imssulc pseudo-variable profile that will store
- the fetched contacts. It is a static string.
+ * profile - Name of $ulc pseudo-variable profile that will store the
+ fetched contacts. It is a static string.
This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
@@ -709,7 +709,7 @@ reg_fetch_contacts("location", "sip:user@kamailio.org", "caller");
data in that profile.
Meaning of the parameters is as follows:
- * profile - Name of $imssulc pseudo-variable profile that stores the
+ * profile - Name of $ulc pseudo-variable profile that stores the
contacts. It is a static string.
This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
[View Less]
- len is first adjusted by the amount of chars consumed so far
- start pointer is then adjusted to begin new search
#### Pre-Submission Checklist
- [X] Commit message has the format required by CONTRIBUTING guide
- [X] Commits are split per component (core, individual modules, libs, utils, ...)
- [X] Each component has a single commit (if not, squash them into one commit)
- [X] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is …
[View More]autogenerated)
#### Type Of Change
- [X] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [X] PR should be backported to stable branches
- [X] Tested changes locally
- [X] Related to issue #4229
#### Description
Small logic tweak — we adjust `len` by the amount of chars consumed first, then adjust the `start` pointer to begin the new search.
Existing:
```
start = space + 1;
len = len - (space - start + 1); // this is a no-op
// as the pointer was adjusted first
```
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4230
-- Commit Summary --
* core: sdp - update start pointer only after len adjustment
-- File Changes --
M src/core/parser/sdp/sdp_helpr_funcs.c (2)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4230.patchhttps://github.com/kamailio/kamailio/pull/4230.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4230
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4230(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 283270128427ba8c5cfe34dc0af338d976a3a8b7
URL: https://github.com/kamailio/kamailio/commit/283270128427ba8c5cfe34dc0af338d…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-18T09:42:13+02:00
tm: docs for t_relay_to_proxy(...)
---
Modified: src/modules/tm/doc/functions.xml
---
Diff: https://github.com/kamailio/kamailio/commit/283270128427ba8c5cfe34dc0af338d……
[View More]Patch: https://github.com/kamailio/kamailio/commit/283270128427ba8c5cfe34dc0af338d…
---
diff --git a/src/modules/tm/doc/functions.xml b/src/modules/tm/doc/functions.xml
index 4cd7f36ba2d..715e564e9ed 100644
--- a/src/modules/tm/doc/functions.xml
+++ b/src/modules/tm/doc/functions.xml
@@ -1739,6 +1739,30 @@ t_relay_to("0x01");
</example>
</section>
+ <section id="tm.f.t_relay_to_proxy">
+ <title>
+ <function>t_relay_to_proxy(proxy)</function>
+ </title>
+ <para>
+ Alternative function to relay the SIP request to a specific address,
+ with the parameter supporting variables inside it.
+ </para>
+ <para>
+ The format of the parameter is: "proto:host:port" - any of proto or port
+ can be omitted, along with the semicolon after or before.
+ </para>
+ <para>
+ The function can be used in REQUEST_ROUTE and FAILURE_ROUTE.
+ </para>
+ <example>
+ <title><function>t_relay_to_proxy</function> usage</title>
+ <programlisting>
+...
+t_relay_to_proxy("udp:$var(addr):5060");
+...
+ </programlisting>
+ </example>
+ </section>
<section id="tm.f.t_set_no_e2e_cancel_reason">
<title>
[View Less]
linuxmaniac created an issue (kamailio/kamailio#4235)
Finally I had the time and patience to address the last issues in our deb environment. Now build flow is by _distribution/architecture_ so errors doesn't interfere in a healthy _distribution/architecture_ combination.
> Follow up: same situation
>
> - **bookworm**: https://kamailio.sipwise.com/view/kamailiodev/job/kamailiodev-nightly-binar…
> ```
> /usr/bin/make every-module group_include="kerlang" quiet=verbose
> make[…
[View More]1]: Entering directory '/build/kamailio-6.1.0~dev1+bpo12.20250509084438.1'
> /usr/bin/make -C src/ every-module
> make[2]: Entering directory '/build/kamailio-6.1.0~dev1+bpo12.20250509084438.1/src'
> config.mak loaded
> Makefile.defs defs skipped
> Makefile.defs defs skipped
> qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> Segmentation fault
> qemu: uncaught target signal 11 (Segmentation fault) - core dumped
> Segmentation fault
> Makefile:16: *** Not found Erlang. Stop.
> make[2]: *** [Makefile:509: modules] Error 1
> make[2]: Leaving directory '/build/kamailio-6.1.0~dev1+bpo12.20250509084438.1/src'
> make[1]: *** [Makefile:34: every-module] Error 2
> make[1]: Leaving directory '/build/kamailio-6.1.0~dev1+bpo12.20250509084438.1'
> make: *** [debian/rules:134: build_erlang] Error 2
> make: *** Waiting for unfinished jobs....
> ```
>
> - **bionic**: https://kamailio.sipwise.com/view/kamailiodev/job/kamailiodev-nightly-binar…
> ```
> gcc -shared -g -pthread -Wl,-O2 -Wl,-E -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic "-ldl" -Wl,-Bsymbolic-functions tls_domain.o tls_init.o tls_verify.o tls_locking.o tls_select.o tls_dump_vf.o tls_bio.o tlsa_mod.o tls_server.o tls_rpc.o tls_ct_wrq.o tls_rand.o tls_util.o tls_cfg.o tls_config.o -lm /usr/lib/aarch64-linux-gnu/libssl.a /usr/lib/aarch64-linux-gnu/libcrypto.a -o tlsa.so
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): In function `sha1_block_armv8':
> (.text+0x1240): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(chacha-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(chacha-armv8.o):(.text+0x20): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): In function `poly1305_emit_neon':
> (.text+0x9a0): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): In function `sha256_block_data_order':
> (.text+0xf88): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): In function `sha512_block_data_order':
> (.text+0x10c8): dangerous relocation: unsupported relocation
> collect2: error: ld returned 1 exit status
> ../../Makefile.rules:191: recipe for target 'tlsa.so' failed
> make[3]: *** [tlsa.so] Error 1
> ```
>
> - **focal**: https://kamailio.sipwise.com/view/kamailiodev/job/kamailiodev-nightly-binar…
> ```
> gcc -shared -g -pthread -Wl,-O2 -Wl,-E -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic "-ldl" -Wl,-Bsymbolic-functions tls_domain.o tls_init.o tls_verify.o tls_locking.o tls_select.o tls_dump_vf.o tls_bio.o tlsa_mod.o tls_server.o tls_rpc.o tls_ct_wrq.o tls_rand.o tls_util.o tls_cfg.o tls_config.o -lm /usr/lib/aarch64-linux-gnu/libssl.a /usr/lib/aarch64-linux-gnu/libcrypto.a -o tlsa.so
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(sha1-armv8.o): in function `sha1_block_armv8':
> (.text+0x1240): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(chacha-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(chacha-armv8.o):(.text+0x20): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(poly1305-armv8.o): in function `poly1305_emit_neon':
> (.text+0x9a0): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(sha256-armv8.o): in function `sha256_block_data_order':
> (.text+0xf88): dangerous relocation: unsupported relocation
> /usr/bin/ld: /usr/lib/aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): relocation R_AARCH64_PREL64 against symbol `OPENSSL_armcap_P' which may bind externally can not be used when making a shared object; recompile with -fPIC
> /usr/lib/aarch64-linux-gnu/libcrypto.a(sha512-armv8.o): in function `sha512_block_data_order':
> (.text+0x1108): dangerous relocation: unsupported relocation
> collect2: error: ld returned 1 exit status
> ```
>
_Originally posted by @linuxmaniac in [#13](https://github.com/sipwise/kamailio-deb-jenkins/issues/13#issuecomment-2866741862)_
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4235
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4235(a)github.com>
[View Less]
longchun4835 created an issue (kamailio/kamailio#4178)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing …
[View More]list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
Using function sip_trace_mode() with parameter d to enable dialog tracing mode logs:
```
BUG: siptrace [siptrace.c:1671]: add_info_xavp(): URI should be in raw format here
ERROR: siptrace [siptrace.c:888]: sip_trace_helper(): failed to serialize siptrace info! Won't trace dialog!
```
### Troubleshooting
#### Reproduction
my module parameters:
```
#!ifdef WITH_HOMER
loadmodule "siptrace.so"
modparam("siptrace", "duplicate_uri", HOMER_URL)
modparam("siptrace", "hep_mode_on", 1)
modparam("siptrace", "trace_to_database", 0)
modparam("siptrace", "trace_flag", 22)
modparam("siptrace", "trace_on", 1)
modparam("siptrace", "hep_version", 3)
modparam("siptrace", "hep_capture_id", HOMER_HEP_ID)
#!endif
...
request_route {
...
if (is_method("INVITE")) {
sip_trace_mode("d");
}
}
```
### Possible Solutions
I checked the source code and found that the issue occurs when sip_trace_helper() is called inside the ki_sip_trace_mode() function, with the third parameter (duri) set to NULL. I don’t quite understand the logic behind passing NULL does this mean that the 'D' parameter will never working when calling sip_trace_mode()?
Additionally, I have another question: in the sip_trace_helper() function, why does it call trace_transaction() instead of trace_dialog() when strace_type == SIPTRACE_DIALOG?
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.6.4 (x86_64/linux) a004cf
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
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: a004cf
compiled on 09:14:30 Jan 23 2025 with gcc 8.3.1
```
* **Operating System**:
```
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4178
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4178(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Add auth_web3 module for blockchain-based authentication
This PR introduces a new authentication module that provides blockchain-powered
digest authentication via Oasis Sapphire smart contracts while maintaining full
compatibility with standard Kamailio auth module functions.
**Key Features:**
- Blockchain-based digest authentication via Oasis Sapphire smart contracts
- RFC2617 compliant MD5 and SHA-256 digest authentication
- Full compatibility with standard auth functions (www_authenticate, proxy_authenticate)
- Configurable parameters: web3_rpc_url, web3_contract_address, web3_debug_mode, web3_timeout
- Comprehensive error handling for network failures and blockchain connectivity
- Nonce management and replay protection identical to traditional auth
**Files Added:**
- src/modules/auth_web3/ (complete module with 9 .c files and supporting headers)
- Comprehensive documentation in doc/ subfolder
- CMakeLists.txt with curl dependency handling
**Testing Summary:**
- **Build Verification**: Module compiles successfully with curl dependency
- **Load Testing**: Module loads without errors in Kamailio configuration
- **Authentication Scenarios**:
- Valid credentials: Successful authentication with correct blockchain credentials
- Invalid credentials: Proper rejection of wrong passwords (tested with Zoiper)
- Network failures: Graceful handling of blockchain RPC connectivity issues
- Parameter validation: All module parameters properly validated
- **Compatibility Testing**: Full compatibility with existing auth module functions
- **Error Handling**: Comprehensive error logging and fallback behavior
**Documentation Status:**
- Complete XML documentation in doc/ subfolder
- Module parameters documented (auth_web3_params.xml)
- Functions documented (auth_web3_functions.xml)
- Configuration examples provided
- Usage patterns and best practices included
**Limitations:**
- Requires external blockchain RPC endpoint (Oasis Sapphire)
- Network dependency for authentication (no offline fallback)
- Requires curl library for HTTP requests to blockchain
- Smart contract must be deployed on target blockchain network
- Authentication speed depends on blockchain network response time
**Build System:**
- Added to MOD_LIST_UTILS group for proper curl dependency handling
- Includes CMakeLists.txt with find_package(CURL REQUIRED)
This module provides a drop-in replacement for traditional authentication while
leveraging blockchain technology for credential verification.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4328
-- Commit Summary --
* auth_web3: initial blockchain authentication module
* cmake: add auth_web3 to MOD_LIST_UTILS group
-- File Changes --
M cmake/groups.cmake (4)
A src/modules/auth_web3/CMakeLists.txt (9)
A src/modules/auth_web3/Makefile (17)
A src/modules/auth_web3/README (1229)
A src/modules/auth_web3/api.c (324)
A src/modules/auth_web3/api.h (170)
A src/modules/auth_web3/auth_web3_mod.c (1739)
A src/modules/auth_web3/auth_web3_mod.h (54)
A src/modules/auth_web3/challenge.c (316)
A src/modules/auth_web3/challenge.h (54)
A src/modules/auth_web3/doc/Makefile (4)
A src/modules/auth_web3/doc/auth_web3.xml (174)
A src/modules/auth_web3/doc/auth_web3_faq.xml (174)
A src/modules/auth_web3/doc/auth_web3_functions.xml (405)
A src/modules/auth_web3/doc/auth_web3_params.xml (922)
A src/modules/auth_web3/nc.c (246)
A src/modules/auth_web3/nc.h (78)
A src/modules/auth_web3/nid.c (96)
A src/modules/auth_web3/nid.h (88)
A src/modules/auth_web3/nonce.c (460)
A src/modules/auth_web3/nonce.h (228)
A src/modules/auth_web3/ot_nonce.c (232)
A src/modules/auth_web3/ot_nonce.h (83)
A src/modules/auth_web3/rfc2617.c (145)
A src/modules/auth_web3/rfc2617.h (97)
A src/modules/auth_web3/rfc2617_sha256.c (150)
A src/modules/auth_web3/rfc2617_sha256.h (71)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4328.patchhttps://github.com/kamailio/kamailio/pull/4328.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4328
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4328(a)github.com>
[View Less]
whosgonna created an issue (kamailio/kamailio#4284)
### Description
Intermittent Kamailio crashes (a few times a week).
### Troubleshooting
Core dump created
#### Reproduction
From the backtrace it looks like the failure occurs in one of the secsipid commands. The Identity headers/values we're passing are from sources we can't control. In some cases I know that we are receiving tokens where the data can be malformated - missing `alg=` or `ppt` parameters, having certificates that cannot …
[View More]be downloaded due to bad links. I can recreate/mimic these types of malformation though, and it does not cause a crash.
#### Debugging Data
For privacy reasons, I can't share the full backtrace, however I'm able to print a mildly redacted short backtrace (removing phone numbers and IP addresses). I can povide portions of the full backtrace as needed as well:
```
root@e416aa3557fa:/dump# gdb /usr/sbin/kamailio ./2025-06-12_16.17.17.dmp
GNU gdb (Debian 13.1-3) 13.1
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/sbin/kamailio...
warning: Can't open file /dev/zero (deleted) during file-backed mapping note processing
[New LWP 12]
[New LWP 58]
[New LWP 88]
[New LWP 59]
[New LWP 57]
[New LWP 106]
[New LWP 305]
[New LWP 46]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
Core was generated by `/sbin/kamailio -dDDeE -u kamailio -g kamailio -e -d -m 1024 -M 48 -u kamailio -'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=281473563709472, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
[Current thread is 1 (Thread 0xffffabc75020 (LWP 12))]
(gdb) bt
#0 __pthread_kill_implementation (threadid=281473563709472, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x0000ffffaba70ab4 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 0x0000ffffaba2a72c in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x0000ffffaba1747c in __GI_abort () at ./stdlib/abort.c:79
#4 0x0000ffffaba64aac in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0xffffabb46d28 "%s\n") at ../sysdeps/posix/libc_fatal.c:156
#5 0x0000ffffaba7aebc in malloc_printerr (str=str@entry=0xffffabb42098 "double free or corruption (!prev)") at ./malloc/malloc.c:5660
#6 0x0000ffffaba7cee8 in _int_free (av=0xffffabb90af0 <main_arena>, p=p@entry=0xaaab18d4c3e0, have_lock=<optimized out>, have_lock@entry=0) at ./malloc/malloc.c:4587
#7 0x0000ffffaba7f77c in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3385
#8 0x0000ffffa6c90a0c in w_secsipid_get_url (msg=0xffffa8d511e0, purl=0xffffa8c43680 "", povar=0xffffa8c4dad0 "\004") at secsipid_mod.c:961
#9 0x0000aaaadc47d710 in do_action (h=0xfffffe56d390, a=0xffffa8c4d800, msg=0xffffa8d511e0) at core/action.c:1133
#10 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe56d390, a=0xffffa8c4d800, msg=0xffffa8d511e0) at core/action.c:1620
#11 0x0000aaaadc48db44 in run_actions_safe (h=0xfffffe56e9d0, a=0xffffa8c4d800, msg=0xffffa8d511e0) at core/action.c:1683
#12 0x0000aaaadc69a7e0 in rval_get_long (h=0xfffffe56e9d0, msg=0xffffa8d511e0, i=0xfffffe56d8c8, rv=0xffffa8c4eac8, cache=0x0) at core/rvalue.c:973
#13 0x0000aaaadc6a00f0 in rval_expr_eval_long (h=0xfffffe56e9d0, msg=0xffffa8d511e0, res=0xfffffe56d8c8, rve=0xffffa8c4eac0) at core/rvalue.c:1852
#14 0x0000aaaadc6a0118 in rval_expr_eval_long (h=0xfffffe56e9d0, msg=0xffffa8d511e0, res=0xfffffe56de00, rve=0xffffa8c4f200) at core/rvalue.c:1862
#15 0x0000aaaadc47d090 in do_action (h=0xfffffe56e9d0, a=0xffffa8c50660, msg=0xffffa8d511e0) at core/action.c:1099
#16 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe56e9d0, a=0xffffa8c4c4e0, msg=0xffffa8d511e0) at core/action.c:1620
#17 0x0000aaaadc479400 in do_action (h=0xfffffe56e9d0, a=0xffffa8c41060, msg=0xffffa8d511e0) at core/action.c:711
#18 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe56e9d0, a=0xffffa8c41060, msg=0xffffa8d511e0) at core/action.c:1620
#19 0x0000aaaadc48db44 in run_actions_safe (h=0xfffffe570870, a=0xffffa8c41060, msg=0xffffa8d511e0) at core/action.c:1683
#20 0x0000aaaadc69a7e0 in rval_get_long (h=0xfffffe570870, msg=0xffffa8d511e0, i=0xfffffe56ef08, rv=0xffffa8c411c8, cache=0x0) at core/rvalue.c:973
#21 0x0000aaaadc6a00f0 in rval_expr_eval_long (h=0xfffffe570870, msg=0xffffa8d511e0, res=0xfffffe56ef08, rve=0xffffa8c411c0) at core/rvalue.c:1852
#22 0x0000aaaadc6a0118 in rval_expr_eval_long (h=0xfffffe570870, msg=0xffffa8d511e0, res=0xfffffe56f440, rve=0xffffa8c41900) at core/rvalue.c:1862
#23 0x0000aaaadc47d090 in do_action (h=0xfffffe570870, a=0xffffa8c428e0, msg=0xffffa8d511e0) at core/action.c:1099
#24 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe570870, a=0xffffa8c428e0, msg=0xffffa8d511e0) at core/action.c:1620
#25 0x0000aaaadc47d5e8 in do_action (h=0xfffffe570870, a=0xffffa8c42a40, msg=0xffffa8d511e0) at core/action.c:1119
#26 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe570870, a=0xffffa8c362f0, msg=0xffffa8d511e0) at core/action.c:1620
#27 0x0000aaaadc479400 in do_action (h=0xfffffe570870, a=0xffffa8c325b0, msg=0xffffa8d511e0) at core/action.c:711
#28 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe570870, a=0xffffa8c325b0, msg=0xffffa8d511e0) at core/action.c:1620
#29 0x0000aaaadc48db44 in run_actions_safe (h=0xfffffe572f78, a=0xffffa8c325b0, msg=0xffffa8d511e0) at core/action.c:1683
#30 0x0000aaaadc69a7e0 in rval_get_long (h=0xfffffe572f78, msg=0xffffa8d511e0, i=0xfffffe570da8, rv=0xffffa8c32718, cache=0x0) at core/rvalue.c:973
#31 0x0000aaaadc6a00f0 in rval_expr_eval_long (h=0xfffffe572f78, msg=0xffffa8d511e0, res=0xfffffe570da8, rve=0xffffa8c32710) at core/rvalue.c:1852
#32 0x0000aaaadc6a0118 in rval_expr_eval_long (h=0xfffffe572f78, msg=0xffffa8d511e0, res=0xfffffe5712e0, rve=0xffffa8c32e50) at core/rvalue.c:1862
#33 0x0000aaaadc47d090 in do_action (h=0xfffffe572f78, a=0xffffa8c33cb0, msg=0xffffa8d511e0) at core/action.c:1099
#34 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe572f78, a=0xffffa8c313a0, msg=0xffffa8d511e0) at core/action.c:1620
#35 0x0000aaaadc4895fc in do_action (h=0xfffffe572f78, a=0xffffa8c35fb0, msg=0xffffa8d511e0) at core/action.c:1401
#36 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe572f78, a=0xffffa8c2e8e0, msg=0xffffa8d511e0) at core/action.c:1620
#37 0x0000aaaadc479400 in do_action (h=0xfffffe572f78, a=0xffffa8bb8070, msg=0xffffa8d511e0) at core/action.c:711
#38 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe572f78, a=0xffffa8bb7980, msg=0xffffa8d511e0) at core/action.c:1620
#39 0x0000aaaadc47d5a8 in do_action (h=0xfffffe572f78, a=0xffffa8bb81d0, msg=0xffffa8d511e0) at core/action.c:1115
#40 0x0000aaaadc48d3c4 in run_actions (h=0xfffffe572f78, a=0xffffa8bb0710, msg=0xffffa8d511e0) at core/action.c:1620
#41 0x0000aaaadc48dbf4 in run_top_route (a=0xffffa8bb0710, msg=0xffffa8d511e0, c=0x0) at core/action.c:1703
#42 0x0000aaaadc63fff8 in receive_msg (
buf=0xaaaadcba84b8 <buf> "INVITE sip:15555555555@sti-cnam SIP/2.0\r\nRecord-Route: <sip:1.2.3.40;lr=on;ftag=gK0e581301;dlgcor=3df.ea65>\r\nVia: SIP/2.0/UDP 1.2.3.40:5060;branch=z9hG4bK7dd5.1fd1b25d525136f68cd8dba517eaf"..., len=2363,
rcv_info=0xfffffe573790) at core/receive.c:520
#43 0x0000aaaadc7dabe0 in udp_rcv_loop () at core/udp_server.c:770
#44 0x0000aaaadc4626a8 in main_loop () at main.c:1895
#45 0x0000aaaadc471e88 in main (argc=16, argv=0xfffffe573ef8) at main.c:3406
(gdb) info locals
tid = 12
ret = 0
pd = 0xffffabc75020
old_mask = {__val = {281474948845152}}
ret = <optimized out>
(gdb) list
39 in ./nptl/pthread_kill.c
```
From the full backtrace at #8:
```
#8 0x0000ffffa6c90a0c in w_secsipid_get_url (msg=0xffffa8d511e0, purl=0xffffa8c43680 "", povar=0xffffa8c4dad0 "\004") at secsipid_mod.c:961
ret = 0
ovar = 0x1d4
val = {rs = {s = 0x0, len = -27866320}, ri = 187650816818084, flags = -27866184}
surl = {s = 0xffffa8a99a30 "https://t-mobile-sticr.fosrvt.com/8814f66226a3d07edcffb9cfb333c423bfe5dd0f7…", len = 102}
__func__ = "w_secsipid_get_url"
```
In this case, the certificate URL is valid and retrievable.
#### Log Messages
I'm not sure how to correlate the dump file to the PID in the log - especially because Kamailio is running a container so the logged PIDs are from the container perspective, not the host perspective.
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 6.0.1 (aarch64/linux) fce50d
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT-NOSMP, 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_SEND_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: fce50d
compiled on 13:26:51 May 12 2025 with gcc 12.2.0
```
* **Operating System**:
Container:
```
root@e416aa3557fa:/# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```
Host:
```
[bkaufman@cr-us-west-or-01~]$ cat /etc/os-release
NAME="Amazon Linux"
VERSION="2023"
ID="amzn"
ID_LIKE="fedora"
VERSION_ID="2023"
PLATFORM_ID="platform:al2023"
PRETTY_NAME="Amazon Linux 2023.6.20250303"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2023"
HOME_URL="https://aws.amazon.com/linux/amazon-linux-2023/"
DOCUMENTATION_URL="https://docs.aws.amazon.com/linux/"
SUPPORT_URL="https://aws.amazon.com/premiumsupport/"
BUG_REPORT_URL="https://github.com/amazonlinux/amazon-linux-2023"
VENDOR_NAME="AWS"
VENDOR_URL="https://aws.amazon.com/"
SUPPORT_END="2029-06-30"
[bkaufman@cr-us-west-or-01~]$ uname -a
Linux cr-us-west-or-01.i.prod.q.fl.gg 6.1.129-138.220.amzn2023.aarch64 #1 SMP Tue Feb 25 22:18:13 UTC 2025 aarch64 aarch64 aarch64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4284
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4284(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Add web3_auth module for blockchain-based authentication
This PR introduces a new authentication module that provides blockchain-powered
digest authentication via Oasis Sapphire smart contracts while maintaining full
compatibility with standard Kamailio auth module functions.
**Key Features:**
- Blockchain-based digest authentication via Oasis Sapphire smart contracts
- RFC2617 compliant MD5 and SHA-256 digest authentication
- Full compatibility with standard auth functions (www_authenticate, proxy_authenticate)
- Configurable parameters: web3_rpc_url, web3_contract_address, web3_debug_mode, web3_timeout
- Comprehensive error handling for network failures and blockchain connectivity
- Nonce management and replay protection identical to traditional auth
**Files Added:**
- src/modules/web3_auth/ (complete module with 9 .c files and supporting headers)
- Comprehensive documentation in doc/ subfolder
- CMakeLists.txt with curl dependency handling
**Testing Summary:**
- **Build Verification**: Module compiles successfully with curl dependency
- **Load Testing**: Module loads without errors in Kamailio configuration
- **Authentication Scenarios**:
- Valid credentials: Successful authentication with correct blockchain credentials
- Invalid credentials: Proper rejection of wrong passwords (tested with Zoiper)
- Network failures: Graceful handling of blockchain RPC connectivity issues
- Parameter validation: All module parameters properly validated
- **Compatibility Testing**: Full compatibility with existing auth module functions
- **Error Handling**: Comprehensive error logging and fallback behavior
**Documentation Status:**
- Complete XML documentation in doc/ subfolder
- Module parameters documented (web3_auth_params.xml)
- Functions documented (web3_auth_functions.xml)
- Configuration examples provided
- Usage patterns and best practices included
**Limitations:**
- Requires external blockchain RPC endpoint (Oasis Sapphire)
- Network dependency for authentication (no offline fallback)
- Requires curl library for HTTP requests to blockchain
- Smart contract must be deployed on target blockchain network
- Authentication speed depends on blockchain network response time
**Build System:**
- Added to MOD_LIST_UTILS group for proper curl dependency handling
- Includes CMakeLists.txt with find_package(CURL REQUIRED)
This module provides a drop-in replacement for traditional authentication while
leveraging blockchain technology for credential verification.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4326
-- Commit Summary --
* web3_auth: initial blockchain authentication module
* cmake: add web3_auth to MOD_LIST_UTILS group
-- File Changes --
M cmake/groups.cmake (2)
A src/modules/web3_auth (1)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4326.patchhttps://github.com/kamailio/kamailio/pull/4326.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4326
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4326(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4327
-- Commit Summary --
* misctest: Add lock_test function and rpc
* misctest: add rpc param
* misctest: docs: add docs for new lock test function
-- File Changes --
M src/modules/misctest/doc/misctest_functions.xml (23)
M src/modules/misctest/doc/misctest_rpc.xml (28)
M src/modules/misctest/misctest_mod.c (48)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4327.patchhttps://github.com/kamailio/kamailio/pull/4327.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4327
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4327(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 4e6b550ab26237e4e2bf60315db9cc09cb4bdb9e
URL: https://github.com/kamailio/kamailio/commit/4e6b550ab26237e4e2bf60315db9cc0…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Henning Westerholt <hw(a)gilawa.com>
Date: 2025-07-16T15:32:35+02:00
misctest: docs: add docs for new lock test function
---
Modified: src/modules/misctest/doc/misctest_functions.xml
Modified: src/modules/misctest/doc/misctest_rpc.xml
---
Diff: https://github.…
[View More]com/kamailio/kamailio/commit/4e6b550ab26237e4e2bf60315db9cc0…
Patch: https://github.com/kamailio/kamailio/commit/4e6b550ab26237e4e2bf60315db9cc0…
---
diff --git a/src/modules/misctest/doc/misctest_functions.xml b/src/modules/misctest/doc/misctest_functions.xml
index faf15f0eeaf..812eb4ba3b2 100644
--- a/src/modules/misctest/doc/misctest_functions.xml
+++ b/src/modules/misctest/doc/misctest_functions.xml
@@ -69,4 +69,27 @@ mt_tcp_thread_exec("request $rm uri $ru");
</example>
</section>
+ <section id="misctest.mt_lock_test">
+ <title>
+ <function>mt_lock_test(count)</function>
+ </title>
+ <para>
+ Lock and unlock the global lock count times.
+ </para>
+ <note>
+ <para>
+ This is a debugging function for simulating locking and unlocking of global lock.
+ It should not be used in production setups
+ </para>
+ </note>
+ <example>
+ <title>
+ <function>mt_lock_test</function> usage</title>
+ <programlisting>
+...
+mt_lock_test(100000000);
+...
+ </programlisting>
+ </example>
+ </section>
</section>
diff --git a/src/modules/misctest/doc/misctest_rpc.xml b/src/modules/misctest/doc/misctest_rpc.xml
index cc80690ada8..93881210998 100644
--- a/src/modules/misctest/doc/misctest_rpc.xml
+++ b/src/modules/misctest/doc/misctest_rpc.xml
@@ -220,4 +220,32 @@
</example>
</section>
+ <section id="mt.lock_test">
+ <title>mt.lock_test</title>
+ <para>
+ The <em>mt.lock_test</em> RPC command performs a lock/unlock stress test using a global lock. It is primarily intended for debugging and performance testing of the locking subsystem.
+ </para>
+ <para>
+ <em>Usage:</em>
+ <programlisting>
+ kamcmd mt.lock_test [executions]
+ </programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <em>executions</em> (optional, integer): Number of times to lock and unlock. Default is 1,000,000,000 if not specified.</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ If the argument is provided, it must be a positive integer. If more than one argument is given, or if the argument is not a positive integer, the command will return an error.
+ </para>
+ <para>
+ Example:
+ <programlisting>
+ kamcmd mt.lock_test 10000
+ </programlisting>
+ This will perform 10,000 lock/unlock operations.
+ </para>
+ </section>
</section>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Skip cdr generation for dialogs with this dlg_var set. This is analogue to parameter in acc module.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4323
-- Commit Summary --
* acc_json: add cdr_skip parameter
-- File Changes --
M src/modules/acc_json/acc_json_mod.c (16)
M src/modules/acc_json/doc/acc_json_admin.xml (18)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4323.patchhttps://github.com/kamailio/kamailio/pull/4323.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4323
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4323(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: dfd5358fd4a685d5c368753e826bff63c4e38988
URL: https://github.com/kamailio/kamailio/commit/dfd5358fd4a685d5c368753e826bff6…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-16T09:31:34+02:00
dispatcher: docs for event_callback_mode parameter
---
Modified: src/modules/dispatcher/doc/dispatcher_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]dfd5358fd4a685d5c368753e826bff6…
Patch: https://github.com/kamailio/kamailio/commit/dfd5358fd4a685d5c368753e826bff6…
---
diff --git a/src/modules/dispatcher/doc/dispatcher_admin.xml b/src/modules/dispatcher/doc/dispatcher_admin.xml
index 1f897f8335b..9429afba67f 100644
--- a/src/modules/dispatcher/doc/dispatcher_admin.xml
+++ b/src/modules/dispatcher/doc/dispatcher_admin.xml
@@ -1073,6 +1073,40 @@ end
</example>
</section>
+ <section id="dispatcher.p.event_callback_mode">
+ <title><varname>event_callback_mode</varname> (int)</title>
+ <para>
+ Controls when the event_route or the KEMI event callback function
+ are executed. If set to 0, they are executed when the destination
+ state changes based on OPTIONS keepalives or the use of config
+ functions to set the state (e.g., ds_mark_dst(...)). If set to 1,
+ they are executed only on state change due to OPTIONS keepalives.
+ </para>
+ <para>
+ Note that event routes are not executed on RPC commands setting
+ the destination state.
+ </para>
+ <para>
+ <emphasis>
+ Default value is '0'.
+ </emphasis>
+ </para>
+ <example>
+ <title>Set <varname>event_callback_mode</varname> parameter</title>
+ <programlisting format="linespecific">
+...
+modparam("dispatcher", "event_callback_mode", 1)
+...
+-- event callback function implemented in Lua
+function ksr_dispatcher_event(evname)
+ KSR.info("===== dispatcher module triggered event: " .. evname .. "\n");
+ return 1;
+end
+...
+</programlisting>
+ </example>
+ </section>
+
<section id="dispatcher.p.ds_attrs_none">
<title><varname>ds_attrs_none</varname> (int)</title>
<para>
@@ -2634,39 +2668,45 @@ setid(int) destination(sip uri) flags(int,opt) priority(int,opt) attrs(str,opt)
<section id="dispatcher.ex.event_routes">
<title>Event routes</title>
<section>
- <title>
- <function moreinfo="none">dispatcher:dst-down</function>
- </title>
- <para>
+ <title>
+ <function moreinfo="none">dispatcher:dst-down</function>
+ </title>
+ <para>
When defined, the module calls event_route[dispatcher:ds-down]
when a destination goes down (becomes probing). A typical use
case is to update NMC equipment as to the status of a destination.
- </para>
+ </para>
+ <para>
+ Its execution is controlled by event_callback_mode parameter.
+ </para>
<programlisting format="linespecific">
...
event_route[dispatcher:dst-down] {
xlog("L_ERR", "Destination down: $rm $ru ($du)\n");
}
...
- </programlisting>
+</programlisting>
</section>
<section>
- <title>
- <function moreinfo="none">dispatcher:dst-up</function>
- </title>
- <para>
+ <title>
+ <function moreinfo="none">dispatcher:dst-up</function>
+ </title>
+ <para>
When defined, the module calls event_route[dispatcher:ds-up]
when a destination that was previously down (probing) comes up.
A typical use case is to update NMC equipment as to the status
of a destination.
- </para>
+ </para>
+ <para>
+ Its execution is controlled by event_callback_mode parameter.
+ </para>
<programlisting format="linespecific">
...
event_route[dispatcher:dst-up] {
xlog("L_ERR", "Destination up: $rm $ru\n");
}
...
- </programlisting>
+</programlisting>
</section>
</section>
[View Less]
sem32 created an issue (kamailio/kamailio#4325)
### Description
The issue: in 15 second after start of kamailio, it stops to read the UDP socket localhost:5060
### Troubleshooting
<img width="683" height="406" alt="Image" src="https://github.com/user-attachments/assets/b93ed7d3-8944-477b-867b-ca7fcae8…" />
#### Reproduction
Preconditions:
- More than one worker for UDP localhost:5060
- Kamailio receives SIP OPTION from the Asterisk by UDP localhost
- In the Kamailio's script we have …
[View More]a logic to send the SIP OPTION by TLS. We modify $ru and add to it ";transport=TLS"
- 25+ sip trunks which generates SIP OPTIONS with transport TLS
- all the trunks are resolvable but not reachable (don't listen the port)
- libssl3
#### Debugging Data
[gdb_239054.txt](https://github.com/user-attachments/files/21236064/gdb_2390…
[gdb_239053.txt](https://github.com/user-attachments/files/21236065/gdb_2390…
### Possible Solutions
We have no issue in case we have:
- only one worker for UPD localhost and any version of libssl (libssl3 or libss1.1)
- or use libssl1.1 and any amount of workers
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
# kamailio -v
version: kamailio 5.8.6 (aarch64/linux) a14e49
flags: , EXTRA_DEBUGUSE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT-NOSMP, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_SEND_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: a14e49
compiled on 14:10:21 Jul 15 2025 with gcc 12.2.0
```
* **Operating System**:
```
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
# uname -a
Linux semen02 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4325
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4325(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 33ba71c209cd612ce59ea547d42c4da11304e5a5
URL: https://github.com/kamailio/kamailio/commit/33ba71c209cd612ce59ea547d42c4da…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-15T12:01:10+02:00
modules: readme files regenerated - ndb_redis ... [skip ci]
---
Modified: src/modules/ndb_redis/README
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]33ba71c209cd612ce59ea547d42c4da…
Patch: https://github.com/kamailio/kamailio/commit/33ba71c209cd612ce59ea547d42c4da…
---
diff --git a/src/modules/ndb_redis/README b/src/modules/ndb_redis/README
index 3f180a1168e..b189f67d5a5 100644
--- a/src/modules/ndb_redis/README
+++ b/src/modules/ndb_redis/README
@@ -154,15 +154,20 @@ Chapter 1. Admin Guide
3.1. server (str)
Specify the details to connect to REDIS server. It takes a list of
- attribute=value separated by semicolon, the attributes can be name,
- unix, addr, port, db, pass and tls. Name is a generic identifier to be
- used with module functions. unix is the path to the unix domain socket
- provided by redis server. addr and port are the IP address and the port
- to connect to REDIS server. pass is the server password. tls is to
- enable TLS connectivity. unix and (addr, port) are mutually exclusive.
- If both appear in same server settings unix domain socket is
- configured. db is the DB number to use (defaults to 0 if not
- specified).
+ attribute=value separated by semicolon, the attributes can be:
+ * name - is a generic identifier to be used with module functions.
+ * unix - is the path to the unix domain socket to connect to REDIS
+ server.
+ * addr - is the IP address to connect to REDIS server.
+ * port - is the port to connect to REDIS server.
+ * db - is the DB number to use (defaults to 0 if not specified).
+ * pass - is the server password.
+ * tls - is to enable TLS connectivity.
+ * connect_timeout - is to set connect timeout to REDIS server.
+ * command_timeout - is to set command timeout to REDIS server.
+
+ Thr unix and (addr, port) are mutually exclusive, if both appear in
+ same server settings unix domain socket is configured.
You can set this parameter many times, in case you want to connect to
many REDIS servers, just give different attributes and use the specific
@@ -189,12 +194,13 @@ modparam("ndb_redis", "server", "name=srvY;unix=/tmp/redis.sock;db=3")
# sentinel (for a redis slave)
modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_ma
-ster=0;sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
+ster=0;"
+ "sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
# sentinel (for a redis master)
modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_ma
-ster=1;sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
-
+ster=1;"
+ "sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
...
3.2. init_without_redis (integer)
[View Less]
Module: kamailio
Branch: master
Commit: 55ddd80d15d1d915c85ec397b6ee100d24e6f077
URL: https://github.com/kamailio/kamailio/commit/55ddd80d15d1d915c85ec397b6ee100…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-15T11:54:27+02:00
nsb_redis: docs updated to turn server attributes in a list
---
Modified: src/modules/ndb_redis/doc/ndb_redis_admin.xml
---
Diff: https://github.com/kamailio/kamailio/…
[View More]commit/55ddd80d15d1d915c85ec397b6ee100…
Patch: https://github.com/kamailio/kamailio/commit/55ddd80d15d1d915c85ec397b6ee100…
---
diff --git a/src/modules/ndb_redis/doc/ndb_redis_admin.xml b/src/modules/ndb_redis/doc/ndb_redis_admin.xml
index 85287118725..efcd95c9671 100644
--- a/src/modules/ndb_redis/doc/ndb_redis_admin.xml
+++ b/src/modules/ndb_redis/doc/ndb_redis_admin.xml
@@ -63,12 +63,49 @@
<title><varname>server</varname> (str)</title>
<para>
Specify the details to connect to REDIS server. It takes a list of attribute=value
- separated by semicolon, the attributes can be name, unix, addr, port, db, pass and tls. Name
- is a generic identifier to be used with module functions. unix is the path to the unix
- domain socket provided by redis server. addr and port are the IP address and the port to
- connect to REDIS server. pass is the server password. tls is to enable TLS connectivity.
- unix and (addr, port) are mutually exclusive. If both appear in same server settings unix
- domain socket is configured. db is the DB number to use (defaults to 0 if not specified).
+ separated by semicolon, the attributes can be:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ name - is a generic identifier to be used with module functions.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ unix - is the path to the unix domain socket to connect to REDIS server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ addr - is the IP address to connect to REDIS server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ port - is the port to connect to REDIS server.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ db - is the DB number to use (defaults to 0 if not specified).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ pass - is the server password.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ tls - is to enable TLS connectivity.
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>
+ Thr unix and (addr, port) are mutually exclusive, if both appear in
+ same server settings unix domain socket is configured.
</para>
<para>
You can set this parameter many times, in case you want to connect to
@@ -76,8 +113,9 @@
server name when querying the REDIS instance.
</para>
<para>
- If tls is enabled, the module will validate the REDIS server certificate against the
- ca_path. There is currently no way to connect with a specified client certificate, the
+ If tls is enabled, the module will validate the REDIS server certificate
+ against the ca_path. There is currently no way to connect with
+ a specified client certificate, the
<ulink url="https://redis.io/docs/management/security/encryption/#client-certificate-au…">corresponding configuration</ulink>
to check client certificates in the REDIS server must therefore be turned off.
</para>
@@ -98,11 +136,12 @@ modparam("ndb_redis", "server", "name=srvY;addr=127.0.0.3;port=6379;db=5;pass=my
modparam("ndb_redis", "server", "name=srvY;unix=/tmp/redis.sock;db=3")
# sentinel (for a redis slave)
-modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_master=0;sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
+modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_master=0;"
+ "sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
# sentinel (for a redis master)
-modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_master=1;sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
-
+modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_master=1;"
+ "sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379")
...
</programlisting>
</example>
@@ -567,4 +606,3 @@ free reply data:
</section>
</section>
</chapter>
-
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
This PR allows the functions `allow_address_group` and `allow_source_address_group` to search for Longest Prefix Match (LPM) when searching for an IP is in a subnet instead of the first found.
Since this is a stricter check, i don't think we require an extra param for it, but feel free to suggest otherwise if there are any use-cases that required the first matched.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4297
-- Commit Summary --
* permissions: Perform LPM to find the longest matching subnet
-- File Changes --
M src/modules/permissions/hash.c (23)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4297.patchhttps://github.com/kamailio/kamailio/pull/4297.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4297
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4297(a)github.com>
[View Less]
With gcc --version
```
$ gcc --version
gcc (GCC) 15.1.1 20250521 (Red Hat 15.1.1-2)
Copyright (C) 2025 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```
this avoids a warning, that gcc is too old. Before:
```
$ rm src/config.mak
$ make config
make -C src/ config
make[1]: Entering directory '/git/voip/kamailio/src'
target architecture <…
[View More]x86_64>, host architecture <x86_64>
Makefile.defs:1065: You are using an old and unsupported gcc version (15.0+), compile at your own risk!
making config...
rm -f modules.lst
make --no-print-directory modules.lst
saving modules list...
make[1]: Leaving directory '/git/voip/kamailio/src'
```
after:
```
$ rm src/config.mak
$ make config
make -C src/ config
make[1]: Entering directory '/git/voip/kamailio/src'
target architecture <x86_64>, host architecture <x86_64>
making config...
rm -f modules.lst
make --no-print-directory modules.lst
saving modules list...
make[1]: Leaving directory '/git/voip/kamailio/src'
```
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4318
-- Commit Summary --
* src/Makefile.defs: Avoid warning for gcc 15
-- File Changes --
M src/Makefile.defs (6)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4318.patchhttps://github.com/kamailio/kamailio/pull/4318.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4318
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4318(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 68da5e0b1a8507efc03730e5c76d10079d5bc24d
URL: https://github.com/kamailio/kamailio/commit/68da5e0b1a8507efc03730e5c76d100…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-15T10:16:18+02:00
permissions: docs for subnet_match_mode param
- updated notes about subnet matching
---
Modified: src/modules/permissions/doc/permissions_admin.xml
---
Diff: https://…
[View More]github.com/kamailio/kamailio/commit/68da5e0b1a8507efc03730e5c76d100…
Patch: https://github.com/kamailio/kamailio/commit/68da5e0b1a8507efc03730e5c76d100…
---
diff --git a/src/modules/permissions/doc/permissions_admin.xml b/src/modules/permissions/doc/permissions_admin.xml
index f893a3e4eb7..1e5e022902e 100644
--- a/src/modules/permissions/doc/permissions_admin.xml
+++ b/src/modules/permissions/doc/permissions_admin.xml
@@ -224,14 +224,16 @@
<note>
<para>
Starting with Kamailio version 6.1.x, the <function>allow_address()</function>
- function and its related functions use the Longest Prefix Match (LPM) method to
- find matching entries.
+ its related functions can do First Prefix Match (FPM) or the
+ Longest Prefix Match (LPM) methods to find the subnet matching record,
+ which can set the tag variable. The matching method is controled by
+ the parameter subnet_match_mode.
</para>
<para>
- This means the <function>_group</function> variants will now return the most specific
- (longest) subnet match, instead of the first match (which was previously the entry with
- the lowest group ID).
- This LPM behavior is now consistent across the following functions:
+ Th LPM means the <function>_group</function> variants will now return
+ the most specific (longest) subnet match, instead of the first match
+ (which was previously the entry with the lowest group ID).
+ The FPM/LPM behavior is now consistent across the following functions:
</para>
<itemizedlist>
<listitem><para><function>allow_address()</function></para></listitem>
@@ -842,6 +844,28 @@ modparam("permissions", "peer_tag_mode", 1)
...
modparam("permissions", "max_subnets", 1024)
...
+</programlisting>
+ </example>
+ </section>
+ <section id ="permissions.p.subnet_match_mode">
+ <title><varname>subnet_match_mode</varname> (int)</title>
+ <para>
+ Control how subnet addresses are matched: 0 - return on the first
+ prefix match; 1 - return on the longest prefix match. It impacts
+ functions like allow_source_address(), allow_address(),
+ allow_source_address_group() or allow_address_group().
+ </para>
+ <para>
+ <emphasis>
+ Default value is <quote>0</quote>.
+ </emphasis>
+ </para>
+ <example>
+ <title>Set <varname>subnet_match_mode</varname> parameter</title>
+ <programlisting format="linespecific">
+...
+modparam("permissions", "subnet_match_mode", 1)
+...
</programlisting>
</example>
</section>
[View Less]
Module: kamailio
Branch: master
Commit: c57dfd9869b32b1901fd4b76b7f5a50239f9bce0
URL: https://github.com/kamailio/kamailio/commit/c57dfd9869b32b1901fd4b76b7f5a50…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-14T15:46:10+02:00
modules: readme files regenerated - permissions ... [skip ci]
---
Modified: src/modules/permissions/README
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]c57dfd9869b32b1901fd4b76b7f5a50…
Patch: https://github.com/kamailio/kamailio/commit/c57dfd9869b32b1901fd4b76b7f5a50…
---
diff --git a/src/modules/permissions/README b/src/modules/permissions/README
index 39d6435b153..144e36f9471 100644
--- a/src/modules/permissions/README
+++ b/src/modules/permissions/README
@@ -348,6 +348,21 @@ Chapter 1. Admin Guide
module parameter) is added as value to peer_tag AVP if peer_tag_avp
module parameter has been defined.
+Note
+
+ Starting with Kamailio version 6.1.x, the allow_address() function and
+ its related functions use the Longest Prefix Match (LPM) method to find
+ matching entries.
+
+ This means the _group variants will now return the most specific
+ (longest) subnet match, instead of the first match (which was
+ previously the entry with the lowest group ID). This LPM behavior is
+ now consistent across the following functions:
+ * allow_address()
+ * allow_source_address()
+ * allow_source_address_group()
+ * allow_address_group()
+
1.5. Trusted Requests
The module can be used to determine if an incoming request can be
@@ -1013,6 +1028,10 @@ if (allow_uri("basename", "$avp(i:705)") { // Check URI stored in $avp(i:705)
any port. The “group_id” argument can be an integer string or a pseudo
variable.
+Note
+
+ See Address permissions for more details.
+
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Example 1.35. allow_address() usage
@@ -1035,6 +1054,10 @@ if (!allow_address("2", "$avp(dst_adr)", "$avp(dst_port)") {
Equal to “allow_address(group_id, "$si", "$sp")”. If 'group_id' is
missing, the function is equal to allow_address("1", "$si", "$sp").
+Note
+
+ See Address permissions for more details.
+
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Example 1.36. allow_source_address(group_id) usage
@@ -1052,6 +1075,11 @@ if (!allow_source_address("1")) {
table in any group. If yes, returns that group. If not returns -1. Port
value 0 in cached address and group table matches any port.
+Note
+
+ See Address permissions for more details on how searching is
+ implemented.
+
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
Example 1.37. allow_source_address_group() usage
@@ -1070,6 +1098,11 @@ if ($var(group) != -1) {
in cached address and group table matches any port. The parameters can
be pseudo-variables.
+Note
+
+ See Address permissions for more details on how searching is
+ implemented.
+
This function can be used from ANY_ROUTE.
Example 1.38. allow_source_address_group() usage
[View Less]
Module: kamailio
Branch: master
Commit: 9e0402e9b1d9d789211bfb3c13fc11ab6d5fa320
URL: https://github.com/kamailio/kamailio/commit/9e0402e9b1d9d789211bfb3c13fc11a…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Henning Westerholt <hw(a)gilawa.com>
Date: 2025-07-14T15:42:47+02:00
permissions: doc: Add note related to LPM search
- allow_address() and 3 more related function now perform LPM search
- allow_source_address()
- allow_source_address_group()
- allow_address_group
-…
[View More]--
Modified: src/modules/permissions/doc/permissions_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/9e0402e9b1d9d789211bfb3c13fc11a…
Patch: https://github.com/kamailio/kamailio/commit/9e0402e9b1d9d789211bfb3c13fc11a…
---
diff --git a/src/modules/permissions/doc/permissions_admin.xml b/src/modules/permissions/doc/permissions_admin.xml
index 494a7ecc0fb..f893a3e4eb7 100644
--- a/src/modules/permissions/doc/permissions_admin.xml
+++ b/src/modules/permissions/doc/permissions_admin.xml
@@ -221,6 +221,25 @@
(see tag_col module parameter) is added as value to
peer_tag AVP if peer_tag_avp module parameter has been defined.
</para>
+ <note>
+ <para>
+ Starting with Kamailio version 6.1.x, the <function>allow_address()</function>
+ function and its related functions use the Longest Prefix Match (LPM) method to
+ find matching entries.
+ </para>
+ <para>
+ This means the <function>_group</function> variants will now return the most specific
+ (longest) subnet match, instead of the first match (which was previously the entry with
+ the lowest group ID).
+ This LPM behavior is now consistent across the following functions:
+ </para>
+ <itemizedlist>
+ <listitem><para><function>allow_address()</function></para></listitem>
+ <listitem><para><function>allow_source_address()</function></para></listitem>
+ <listitem><para><function>allow_source_address_group()</function></para></listitem>
+ <listitem><para><function>allow_address_group()</function></para></listitem>
+ </itemizedlist>
+ </note>
</section>
<section id="sec-trusted-requests">
<title>Trusted Requests</title>
@@ -1259,6 +1278,9 @@ if (allow_uri("basename", "$avp(i:705)") { // Check URI stored in $avp(i:705)
matches any port. The <quote>group_id</quote> argument can be an integer
string or a pseudo variable.
</para>
+ <note>
+ See <link linkend="sec-address-permissions"> Address permissions </link> for more details.
+ </note>
<para>
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
</para>
@@ -1289,6 +1311,9 @@ if (!allow_address("2", "$avp(dst_adr)", "$avp(dst_port)") {
Equal to <quote>allow_address(group_id, "$si", "$sp")</quote>. If 'group_id' is
missing, the function is equal to allow_address("1", "$si", "$sp").
</para>
+ <note>
+ See <link linkend="sec-address-permissions"> Address permissions </link> for more details.
+ </note>
<para>
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
</para>
@@ -1315,6 +1340,10 @@ if (!allow_source_address("1")) {
If not returns -1. Port value 0 in cached address and
group table matches any port.
</para>
+ <note>
+ See <link linkend="sec-address-permissions"> Address permissions </link>
+ for more details on how searching is implemented.
+ </note>
<para>
This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
</para>
@@ -1341,6 +1370,10 @@ if ($var(group) != -1) {
If not returns -1. Port value 0 in cached address and
group table matches any port. The parameters can be pseudo-variables.
</para>
+ <note>
+ See <link linkend="sec-address-permissions"> Address permissions </link>
+ for more details on how searching is implemented.
+ </note>
<para>
This function can be used from ANY_ROUTE.
</para>
[View Less]
kurtyks created an issue (kamailio/kamailio#4316)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for feature requests.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing …
[View More]list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
If you submit a feature request (or enhancement) add the description of what you would like to be added.
If there is no content to be filled in a section, the entire section can be removed.
Note that a feature request may be closed automatically after about 2 months
if there is no interest from developers or community users to implement it, being
considered expired. In such case can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the item is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in the proposed feature request.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Expected behavior
#### Actual observed behavior
#### Debugging Data
```
(paste your debugging data here)
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
Rn. UAC module allows only global setting of Contact header, while sending REGISTER to UAS. It is done by setting param reg_contact_addr (string).
This is edge case, but sometimes for diffrent itsp’s i need to pass diffrent contact value, while for example one is on public internet, other is behind vpn.
It d be nice just to extend uacreg table + contact_addr, contact_port, contact_user or just by adding contact field with URI to be sent in register.
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a improvement.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
(paste your output here)
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `uname -a`)
-->
```
(paste your output here)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4316
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4316(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: b83794109113cbbd335625796f55d2b5aaa3968f
URL: https://github.com/kamailio/kamailio/commit/b83794109113cbbd335625796f55d2b…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-14T13:01:10+02:00
modules: readme files regenerated - dialog ... [skip ci]
---
Modified: src/modules/dialog/README
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]b83794109113cbbd335625796f55d2b…
Patch: https://github.com/kamailio/kamailio/commit/b83794109113cbbd335625796f55d2b…
---
diff --git a/src/modules/dialog/README b/src/modules/dialog/README
index be626d40c7c..dab489750b1 100644
--- a/src/modules/dialog/README
+++ b/src/modules/dialog/README
@@ -669,7 +669,7 @@ modparam("dialog", "rr_param", "xyz")
6.4. dlg_flag (integer)
- Note: This flag has beed deprecated and not used anyymore. it is not
+ Note: This flag has beed deprecated and not used anymore. It is not
needed to set this parameter and its corresponding flag for initial
request in case the “dlg_manage()” function is used. In other words,
use “dlg_manage()”.
[View Less]
dilyanpalauzov created an issue (kamailio/kamailio#4321)
With Kamailio 5.8 this worked:
```
FLT_DIALOG=10
modparam("dialog", "dlg_flag", FLT_DIALOG)
```
In version 6.0 it produces an error:
```
0(1) ERROR: <core> [core/modparam.c:187]: set_mod_param_regex(): parameter <dlg_flag> of type <2:int> not found in module <dialog>
0(1) CRITICAL: <core> [core/cfg.y:4049]: yyerror_at(): parse error in config file /conf/kamailio.cfg, line 169, column 34: Can't set module …
[View More]parameter
```
and e60a06469503c566d40437e69cf3374 has removed dialog.dlg_flag option. But https://www.kamailio.org/docs/modules/devel/modules/dialog.html#dialog.p.fl… states for dlg_flag:
> Note: This flag has beed deprecated and not used anymore. It is not needed to set this parameter and its corresponding flag for initial request in case the “dlg_manage()” function is used. In other words, use “dlg_manage()”.
This is not so correct. If it is deprecated, then Kamailio will still work with it. If it is not needed any more to set this parameter, then it means that the parameter can nevertheless be set. But it cannot be set.
* Documentation should state that the parameter is removed, instead of classifying it as deprecated, and there is no need to set it anymore.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4321
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4321(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [x] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4322
-- Commit Summary --
* htable: Fix typo
* core: Fix typos
* pv: Fix typo
-- File Changes --
M src/core/parser/parse_fline.c (2)
M src/core/tcp_conn.h (2)
M src/core/timer.h (2)
M src/core/timer_ticks.h (2)
M src/modules/pv/pv.c (2)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4322.patchhttps://github.com/kamailio/kamailio/pull/4322.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4322
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4322(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 6b92933080230f9546c9559aba9ecdfad7759a15
URL: https://github.com/kamailio/kamailio/commit/6b92933080230f9546c9559aba9ecdf…
Author: Bastian Triller <bastian.triller(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-14T12:58:23+02:00
core: Fix typos
---
Modified: src/core/tcp_conn.h
Modified: src/core/timer.h
Modified: src/core/timer_ticks.h
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]6b92933080230f9546c9559aba9ecdf…
Patch: https://github.com/kamailio/kamailio/commit/6b92933080230f9546c9559aba9ecdf…
---
diff --git a/src/core/tcp_conn.h b/src/core/tcp_conn.h
index 1fc3c001f15..8b8c71df8ff 100644
--- a/src/core/tcp_conn.h
+++ b/src/core/tcp_conn.h
@@ -40,7 +40,7 @@
#define TCP_CHILD_TIMEOUT \
5 /* after 5 seconds, the child "returns"
- * the connection to the tcp maing process */
+ * the connection to the tcp main process */
#define TCP_MAIN_SELECT_TIMEOUT 5 /* how often "tcp main" checks for timeout*/
#define TCP_CHILD_SELECT_TIMEOUT 2 /* the same as above but for children */
diff --git a/src/core/timer.h b/src/core/timer.h
index b3920163731..73a9d4c48cc 100644
--- a/src/core/timer.h
+++ b/src/core/timer.h
@@ -53,7 +53,7 @@
#ifdef USE_SLOW_TIMER
#include <sys/types.h>
-typedef unsigned int slow_idx_t; /* type fot the slow index */
+typedef unsigned int slow_idx_t; /* type for the slow index */
extern pid_t slow_timer_pid;
#endif
diff --git a/src/core/timer_ticks.h b/src/core/timer_ticks.h
index 292b73e71a9..c5e93aee92e 100644
--- a/src/core/timer_ticks.h
+++ b/src/core/timer_ticks.h
@@ -43,7 +43,7 @@
#define S_TO_TICKS(s) ((s)*TIMER_TICKS_HZ)
-/** @brief how many s pe per t ticks, integer value */
+/** @brief how many seconds per ticks, integer value */
#define TICKS_TO_S(t) ((t) / TIMER_TICKS_HZ)
/** @brief how many ms per t ticks, integer value */
[View Less]
Module: kamailio
Branch: master
Commit: 93586580259fe2d71899a3a4d83868f89362f695
URL: https://github.com/kamailio/kamailio/commit/93586580259fe2d71899a3a4d83868f…
Author: Bastian Triller <bastian.triller(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-14T12:58:23+02:00
htable: Fix typo
---
Modified: src/core/parser/parse_fline.c
---
Diff: https://github.com/kamailio/kamailio/commit/93586580259fe2d71899a3a4d83868f…
Patch: https://github.…
[View More]com/kamailio/kamailio/commit/93586580259fe2d71899a3a4d83868f…
---
diff --git a/src/core/parser/parse_fline.c b/src/core/parser/parse_fline.c
index 64d51aae9d0..0db50545533 100644
--- a/src/core/parser/parse_fline.c
+++ b/src/core/parser/parse_fline.c
@@ -130,7 +130,7 @@ char *parse_first_line(char *buffer, unsigned int len, struct msg_start *fl)
* H-file (this is the value which you will take later in
* processing and define XXX_LEN as length of method name;
* then just call IFISMETHOD( XXX, 'X' ) ... 'X' is the first
- * latter; everything must be capitals
+ * letter; everything must be capitals
*/
else
{
[View Less]
Module: kamailio
Branch: master
Commit: cc22bfc5199855f990156fb6a533c67dbc9049e9
URL: https://github.com/kamailio/kamailio/commit/cc22bfc5199855f990156fb6a533c67…
Author: ÐилÑн ÐалаÑзов <git-dpa(a)aegee.org>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-14T12:57:36+02:00
dialog: use capital letter at start of sentence
---
Modified: src/modules/dialog/doc/dialog_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]cc22bfc5199855f990156fb6a533c67…
Patch: https://github.com/kamailio/kamailio/commit/cc22bfc5199855f990156fb6a533c67…
---
diff --git a/src/modules/dialog/doc/dialog_admin.xml b/src/modules/dialog/doc/dialog_admin.xml
index 2653f159ea4..4ae623aa262 100644
--- a/src/modules/dialog/doc/dialog_admin.xml
+++ b/src/modules/dialog/doc/dialog_admin.xml
@@ -252,8 +252,8 @@ modparam("dialog", "rr_param", "xyz")
<section id="dialog.p.flag">
<title><varname>dlg_flag</varname> (integer)</title>
<para>
- Note: This flag has beed deprecated and not used anyymore.
- it is not needed to set this parameter and its corresponding flag
+ Note: This flag has beed deprecated and not used anymore.
+ It is not needed to set this parameter and its corresponding flag
for initial request in case the <quote>dlg_manage()</quote> function
is used.
In other words, use <quote>dlg_manage()</quote>.
[View Less]
Module: kamailio
Branch: master
Commit: 506ac5b8e1f0c30170a87f071a255fb31d3ebd57
URL: https://github.com/kamailio/kamailio/commit/506ac5b8e1f0c30170a87f071a255fb…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-14T08:46:10+02:00
modules: readme files regenerated - tm ... [skip ci]
---
Modified: src/modules/tm/README
---
Diff: https://github.com/kamailio/kamailio/commit/506ac5b8e1f0c30170a87f071a255fb……
[View More]Patch: https://github.com/kamailio/kamailio/commit/506ac5b8e1f0c30170a87f071a255fb…
---
diff --git a/src/modules/tm/README b/src/modules/tm/README
index f372785929a..31f312e354c 100644
--- a/src/modules/tm/README
+++ b/src/modules/tm/README
@@ -3341,6 +3341,9 @@ reply_route {
"noack" - to not automatically send ACK for local INVITE requests
* rpflags - RPC parameters flags. The values can be: 1 - the body is
hexa-encoded value.
+ * fr_timeout - the fr_timeout value for the local transaction.
+ * fr_inv_timeout - the fr_inv_timeout value for the local
+ transaction.
Example 1.113. Using “tm.t_uac_attrs”
...
[View Less]
Great work kamailio devs in releasing 6.0.2 and the continuing work on
master branch.
Wishing you a restful weekend and while you are at it, here are some ideas,
probably half-baked, for your consideration.
Background:
Kamailio uses XML for documentation that is followed by an automatic task
that renders to plaintext(README file) for the repo and HTML for the website
Proposal - Use Markdown for docs/
Author docs/ in Markdown
- no rendering in-repo
- website will need a static site …
[View More]generator that can create the internal
links
Benefits
- markdown is a common mark-up tool for plaintext that has sufficient
semantic richness for kamailio
- most developers are familiar with markdown especially from Github, other
git-forges
- avoids the in-repo rendering step - most git-forges can render the
markdown file on-screen so that there is less iteration required if there
are typos in xml. It is also easier for the developer to validate their
docs prior to pushing to master branch
Work Required:
- evaluate and implement the static site generator
- the in-repo README generator can be slowly phased out
Regards
Richard (Shih-Ping)
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Adding KDMQ replication for rtpengine hash table (call -> rtpengine instance assignment)
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4240
-- Commit Summary --
* rtpegnine hash table dmq replication
-- File Changes --
M src/modules/rtpengine/rtpengine.c (49)
M src/modules/rtpengine/rtpengine.h (4)
M src/modules/rtpengine/rtpengine_db.c (2)
A src/modules/rtpengine/rtpengine_dmq.c (310)
A src/modules/rtpengine/rtpengine_dmq.h (54)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4240.patchhttps://github.com/kamailio/kamailio/pull/4240.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4240
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4240(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: b44ddff0eb0e0038d6d712b29d18f079acd2a99c
URL: https://github.com/kamailio/kamailio/commit/b44ddff0eb0e0038d6d712b29d18f07…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2025-07-11T08:46:10+02:00
modules: readme files regenerated - tm ... [skip ci]
---
Modified: src/modules/tm/README
---
Diff: https://github.com/kamailio/kamailio/commit/b44ddff0eb0e0038d6d712b29d18f07……
[View More]Patch: https://github.com/kamailio/kamailio/commit/b44ddff0eb0e0038d6d712b29d18f07…
---
diff --git a/src/modules/tm/README b/src/modules/tm/README
index dde1047ced8..f372785929a 100644
--- a/src/modules/tm/README
+++ b/src/modules/tm/README
@@ -3333,9 +3333,10 @@ reply_route {
The attributes are in the format "name1=value1;...;nameX=valueX". The
name of the attribute can be:
- * reply - control how the reply is waited. If not provided, acts like
- tm.t_uac_start. The values can be: "wait" - act like tm.t_uac_wait;
- "block" - act like tm.t_uac_wait_block.
+ * mode - control how the command is done. If not provided or the
+ value is "start", acts like tm.t_uac_start. The other values can
+ be: "wait" - act like tm.t_uac_wait; "block" - act like
+ tm.t_uac_wait_block.
* cbflags - the transaction callback flags. The values can be:
"noack" - to not automatically send ACK for local INVITE requests
* rpflags - RPC parameters flags. The values can be: 1 - the body is
[View Less]
Module: kamailio
Branch: master
Commit: 8957ea9ddba9aaa602b8762c79bfcdf58404fbb8
URL: https://github.com/kamailio/kamailio/commit/8957ea9ddba9aaa602b8762c79bfcdf…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-11T08:37:18+02:00
tm: docs update for mode values of rpc tm.t_uac_attrs
---
Modified: src/modules/tm/doc/rpc.xml
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]8957ea9ddba9aaa602b8762c79bfcdf…
Patch: https://github.com/kamailio/kamailio/commit/8957ea9ddba9aaa602b8762c79bfcdf…
---
diff --git a/src/modules/tm/doc/rpc.xml b/src/modules/tm/doc/rpc.xml
index 56925d08c52..566d698b0cc 100644
--- a/src/modules/tm/doc/rpc.xml
+++ b/src/modules/tm/doc/rpc.xml
@@ -188,9 +188,9 @@
<itemizedlist>
<listitem><para>
<emphasis>mode</emphasis> - control how the command is done. If
- not provided, acts like tm.t_uac_start. The values can be:
- "wait" - act like tm.t_uac_wait; "block" - act like
- tm.t_uac_wait_block.
+ not provided or the value is "start", acts like tm.t_uac_start.
+ The other values can be: "wait" - act like tm.t_uac_wait;
+ "block" - act like tm.t_uac_wait_block.
</para></listitem>
<listitem><para>
<emphasis>cbflags</emphasis> - the transaction callback flags. The
[View Less]
Kudos go to Pawel Kuzak.
Redis v7.4, hashes support auto-expiry for individual keys. By transforming sets into hashes we can support auto-expiry.
Adding module parameters use_redis_hashes and expires to control the described feature.
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless …
[View More]they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4306
-- Commit Summary --
* db_redis: add Redis auto expiry support by changing sets to hashes
-- File Changes --
M src/modules/db_redis/db_redis_mod.c (18)
M src/modules/db_redis/doc/db_redis_admin.xml (46)
M src/modules/db_redis/redis_connection.c (47)
M src/modules/db_redis/redis_dbase.c (385)
M src/modules/db_redis/redis_dbase.h (3)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4306.patchhttps://github.com/kamailio/kamailio/pull/4306.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4306
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4306(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 2131af6464623a6bab1b23489cc1891faf7378b8
URL: https://github.com/kamailio/kamailio/commit/2131af6464623a6bab1b23489cc1891…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-07-10T10:51:05+02:00
tm: docs for rpc command tm.t_uac_attrs
---
Modified: src/modules/tm/doc/rpc.xml
---
Diff: https://github.com/kamailio/kamailio/commit/2131af6464623a6bab1b23489cc1891……
[View More]Patch: https://github.com/kamailio/kamailio/commit/2131af6464623a6bab1b23489cc1891…
---
diff --git a/src/modules/tm/doc/rpc.xml b/src/modules/tm/doc/rpc.xml
index 00164bc5793..21b77bab2ec 100644
--- a/src/modules/tm/doc/rpc.xml
+++ b/src/modules/tm/doc/rpc.xml
@@ -173,6 +173,46 @@
</para>
</section>
+ <section id="tm.rpc.t_uac_attrs">
+ <title>
+ <function moreinfo="none">tm.t_uac_attrs</function>
+ </title>
+ <para>
+ Combine the tm.t_uac_* variants, by providing the first parameter with
+ attributes, then the other parameters are like for tm.t_uac_start.
+ </para>
+ <para>
+ The attributes are in the format "name1=value1;...;nameX=valueX". The
+ name of the attribute can be:
+ </para>
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>reply</emphasis> - control how the reply is waited. If
+ not provided, acts like tm.t_uac_start. The values can be:
+ "wait" - act like tm.t_uac_wait; "block" - act like
+ tm.t_uac_wait_block.
+ </para></listitem>
+ <listitem><para>
+ <emphasis>cbflags</emphasis> - the transaction callback flags. The
+ values can be: "noack" - to not automatically send ACK for local
+ INVITE requests
+ </para></listitem>
+ <listitem><para>
+ <emphasis>rpflags</emphasis> - RPC parameters flags. The values
+ can be: 1 - the body is hexa-encoded value.
+ </para></listitem>
+ </itemizedlist>
+ <example>
+ <title>Using <quote>tm.t_uac_attrs</quote></title>
+ <programlisting format="linespecific">
+...
+kamcli rpc tm.t_uac_attrs 'reply=wait;cbflags=noack;rpflags=1' 'INVITE' ...
+...
+</programlisting>
+ </example>
+ </section>
+
+
<section id="tm.rpc.cancel">
<title>
<function moreinfo="none">tm.cancel</function>
[View Less]
Module: kamailio
Branch: master
Commit: 558e6458c083d12087556808aced05589cd59669
URL: https://github.com/kamailio/kamailio/commit/558e6458c083d12087556808aced055…
Author: Henning Westerholt <hw(a)gilawa.com>
Committer: Henning Westerholt <hw(a)gilawa.com>
Date: 2025-07-10T08:36:17Z
carrierroute: spelling fix in comment
---
Modified: src/modules/carrierroute/cr_rule.h
---
Diff: https://github.com/kamailio/kamailio/commit/558e6458c083d12087556808aced055…
Patch: https://github.…
[View More]com/kamailio/kamailio/commit/558e6458c083d12087556808aced055…
---
diff --git a/src/modules/carrierroute/cr_rule.h b/src/modules/carrierroute/cr_rule.h
index f0517e2f165..96f69f58633 100644
--- a/src/modules/carrierroute/cr_rule.h
+++ b/src/modules/carrierroute/cr_rule.h
@@ -48,7 +48,7 @@ struct route_rule
double orig_prob; /*!< The original probability for that rule, only useful when using crc32 hashing */
str host; /*!< The new target host for the request */
int strip; /*!< the number of digits to be stripped off from uri before prepending prefix */
- str local_prefix; /*!< the pefix to be attached to the new destination */
+ str local_prefix; /*!< the prefix to be attached to the new destination */
str local_suffix; /*!< the suffix to be appended to the localpart of the new destination */
str comment; /*!< A comment for the route rule */
str prefix; /*!< The prefix for which the route is valid */
[View Less]
Pandi1981 created an issue (kamailio/kamailio#4208)
We are facing an issue while using TOPOS in Kamailio P-CSCF (running under Docker).
Kamailio version: 6.0.0
operating system: "10 (buster)"
**Call Flow & Issue Description:**
Note: Public IP and Private IP mapping using the below configuration.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
listen=udp:LOCAL_IP:5060 name "internal"
listen=udp:LOCAL_IP:6080 advertise PUBLIC_IP:6080 name "external"
++++++++++++++++++++…
[View More]++++++++++++++++++++++++++++++++++++++++++++++++
**Call Flow (INVITE):**
A-Party --> Kamailio P-CSCF (Public IP) --> Kamailio P-CSCF (Private IP) --> Kamailio S-CSCF (Private IP)
B-Party <-- Kamailio P-CSCF (Public IP) <-- Kamailio P-CSCF (Private IP) <-- Kamailio S-CSCF (Private IP)
Everything works correctly up to the point where the 200 OK is received by the A-Party. However, when the A-Party sends the ACK, it is received by the Kamailio P-CSCF but is not forwarded to the B-Party.
Upon investigation, we found that when Kamailio receives the ACK from the A-Party, the rr (Record-Route) module fails to recognize its own Route header and thus falls back to strict routing instead of performing loose routing. This results in an incorrect rewrite of the Request-URI of the ACK, causing it to fail to reach the B-Party. Essentially, the Route header is not popped as expected and the ACK routing breaks.
TOPOS module is configured as follows:
loadmodule "topos_redis.so"
loadmodule "ndb_redis.so"
loadmodule "topos.so"
modparam("ndb_redis", "server", "name=tps;addr=127.0.0.1;port=6379;db=0")
modparam("topos", "storage", "redis")
modparam("topos_redis", "serverid", "tps")
modparam("topos", "rr_update", 1)
modparam("topos", "contact_mode", 1)
modparam("topos", "xavu_field_a_contact", "a_contact")
modparam("topos", "xavu_field_b_contact", "b_contact")
modparam("topos", "xavu_cfg", "tps")
Please guide us how to achieve and what we are doing wrong.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4208
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4208(a)github.com>
[View Less]
<!-- Kamailio Pull Request Template -->
<!--
IMPORTANT:
- for detailed contributing guidelines, read:
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md
- pull requests must be done to master branch, unless they are backports
of fixes from master branch to a stable branch
- backports to stable branches must be done with 'git cherry-pick -x ...'
- code is contributed under BSD for core and main components (tm, sl, auth, …
[View More]tls)
- code is contributed GPLv2 or a compatible license for the other components
- GPL code is contributed with OpenSSL licensing exception
-->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [x] Related to issue #3823
#### Description
<!-- Describe your changes in detail -->
This PR aims to implement what was discussed in [mailing list](https://lists.kamailio.org/mailman3/hyperkitty/list/sr-dev@lists.kama… regarding some `tls.reload` and increasing memory usage.
It adds a new parameter `enable_shared_ctx` in `tls` module that if set to 0, preserves the old behavior and if set to 1 (other than 0 tbh), it creates a single SSL context that is being shared. This have the effect of using way less memory when initialized as well, but also minimizes (can't say it fixes the problem) the `tls.reload` memory increase.
I have also added a small markdown (comparison.md) file, where some comparisons where made between enabled/disabled shared context and with/without CA file (where the initial problem was occurring by the reporter).
Feedback would be necessary to verify whether this patch, acts as expected and kamailio works as intented.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3972
-- Commit Summary --
* tls: Add parameter for shared contexts
* tls: Comparison for enable_shared_ctx
-- File Changes --
A comparison.md (15)
M src/modules/tls/tls_domain.c (172)
M src/modules/tls/tls_mod.c (11)
M src/modules/tls/tls_mod.h (1)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3972.patchhttps://github.com/kamailio/kamailio/pull/3972.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3972
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3972(a)github.com>
[View Less]
denyspozniak created an issue (kamailio/kamailio#4314)
### Description
The code below causes Kamailio to crash when sending a simple OPTIONS request.
I agree that this is not the most proper way to call the sl function,
but it's probably worth paying attention to this issue.
#### Reproduction
```import sys
import KSR as KSR
def mod_init():
return kamailio()
class kamailio:
def __init__(self):
KSR.info('== kamailio init ==\n')
def child_init(self, rank):
…
[View More]return 0
def ksr_request_route(self, msg):
KSR.x.modf("sl_send_reply", "200", "OK");
return 1
```
#### Debugging Data
[(gdb) bt full.txt](https://github.com/user-attachments/files/21149798/gdb.bt.full.tx…
[(gdb) info locals.txt](https://github.com/user-attachments/files/21149836/gdb.info.loc…
```
(gdb) list
154 in sl_funcs.c
```
#### Log Messages
```
Program received signal SIGSEGV, Segmentation fault.
sl_reply_helper (msg=msg@entry=0x7ffff6fada80, code=200, reason=reason@entry=0x7ffff75d2070 "OK", tag=tag@entry=0x0) at sl_funcs.c:159
159 sl_funcs.c: No such file or directory.
```
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 6.1.0-dev1 (x86_64/linux)
flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, MEM_JOIN_FREE, 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_SEND_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: unknown
compiled with gcc 9.4.0
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4314
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4314(a)github.com>
[View Less]
tsearle created an issue (kamailio/kamailio#4308)
while rtpengine_subscribe_request is the correct method name in kemi, when using the kamailio scripting engine the correct name is rtpengine_subscribe_offer
the documentation for the module needs to be updated to reflect this
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4308
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4308(a)github.com>
<!-- Kamailio Pull Request Template -->
#### Pre-Submission Checklist
<!-- Go over all points below, and after creating the PR, tick all the checkboxes that apply -->
<!-- All points should be verified, otherwise, read the CONTRIBUTING guidelines from above-->
<!-- If you're unsure about any of these, don't hesitate to ask on sr-dev mailing list -->
- [x] Commit message has the format required by CONTRIBUTING guide
- [x] …
[View More]Commits are split per component (core, individual modules, libs, utils, ...)
- [x] Each component has a single commit (if not, squash them into one commit)
- [x] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [x] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [x] Related to issue #4308
#### Description
the method rtpengine_subscribe_offer has been renamed to rtpengine_subscribe_request to align with the method exposed to kemi as well as to match the name of the actual control message in rtpengine
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4312
-- Commit Summary --
* rtpengine: revert documentation change for rtpengine_subscribe
* rtpengine: make rtpengine_subscribe_request align with kemi name
-- File Changes --
M src/modules/rtpengine/doc/rtpengine_admin.xml (16)
M src/modules/rtpengine/rtpengine.c (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4312.patchhttps://github.com/kamailio/kamailio/pull/4312.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4312
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4312(a)github.com>
[View Less]
Module: kamailio
Branch: master
Commit: 30a65e34bb2d240cd3cfa22779ef0f5f575388ec
URL: https://github.com/kamailio/kamailio/commit/30a65e34bb2d240cd3cfa22779ef0f5…
Author: Torrey Searle <torrey.searle(a)wavecrest.com>
Committer: tsearle <tsearle(a)gmail.com>
Date: 2025-07-09T13:04:03+02:00
rtpengine: revert documentation change for rtpengine_subscribe
---
Modified: src/modules/rtpengine/doc/rtpengine_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/…
[View More]30a65e34bb2d240cd3cfa22779ef0f5…
Patch: https://github.com/kamailio/kamailio/commit/30a65e34bb2d240cd3cfa22779ef0f5…
---
diff --git a/src/modules/rtpengine/doc/rtpengine_admin.xml b/src/modules/rtpengine/doc/rtpengine_admin.xml
index 6d079f0bfaa..463386b5878 100644
--- a/src/modules/rtpengine/doc/rtpengine_admin.xml
+++ b/src/modules/rtpengine/doc/rtpengine_admin.xml
@@ -3252,9 +3252,9 @@ rtpengine_manage();
</programlisting>
</example>
</section>
- <section id="rtpengine.f.rtpengine_subscribe_offer">
+ <section id="rtpengine.f.rtpengine_subscribe_request">
<title>
- <function moreinfo="none">rtpengine_subscribe_offer(flags,sdp_avp,to_tag_avp,stream_xavp[,via-branch])</function>
+ <function moreinfo="none">rtpengine_subscribe_request(flags,sdp_avp,to_tag_avp,stream_xavp[,via-branch])</function>
</title>
<para>
Generates &sdp; body for forking the current &rtp; stream and stores it in the
@@ -3266,7 +3266,7 @@ rtpengine_manage();
</para>
<para>
The function will return true on success and false (-1) on various failures,
- like using rtpengine_subscribe_offer() before an rtpengine session was established.
+ like using rtpengine_subscribe_request() before an rtpengine session was established.
</para>
<para>Meaning of the parameters is as follows:</para>
<itemizedlist>
@@ -3365,7 +3365,7 @@ rtpengine_manage();
This function can be used from ANY_ROUTE.
</para>
<example>
- <title><function>rtpengine_subscribe_offer</function> usage</title>
+ <title><function>rtpengine_subscribe_request</function> usage</title>
<programlisting format="linespecific">
route {
...
@@ -3383,7 +3383,7 @@ onreply_route[1]
...
if (has_body("application/sdp")) {
rtpengine_answer();
- rtpengine_subscribe_offer("all siprec", "$avp(siprec_offer)",
+ rtpengine_subscribe_request("all siprec", "$avp(siprec_offer)",
"$avp(siprec_to_tag)", "siprec_streams");
xinfo("SIPREC participant $xavp(siprec_streams[0]=>tag) with label $xavp(siprec_streams[0]=>label[0])\n");
xinfo("SIPREC participant $xavp(siprec_streams[1]=>tag) with label $xavp(siprec_streams[0]=>label[0])\n");
@@ -3460,7 +3460,7 @@ onreply_route[1] {
<itemizedlist>
<listitem><para>
<emphasis>to-tag=...</emphasis> - value of the to tag returned by
- <quote>rtpengine_subscribe_offer</quote>
+ <quote>rtpengine_subscribe_request</quote>
</para></listitem>
<listitem><para>
<emphasis>from-tag=...</emphasis> - value of the from tag of the original call.
@@ -3474,7 +3474,7 @@ onreply_route[1] {
<example>
<title><function>rtpengine_subscribe_answer</function> usage</title>
<para>
- See rtpengine_subscribe_offer() function example above for example.
+ See rtpengine_subscribe_request() function example above for example.
</para>
</example>
</section>
@@ -3505,7 +3505,7 @@ onreply_route[1] {
<itemizedlist>
<listitem><para>
<emphasis>to-tag=...</emphasis> - value of the to tag returned by
- <quote>rtpengine_subscribe_offer</quote>
+ <quote>rtpengine_subscribe_request</quote>
</para></listitem>
<listitem><para>
<emphasis>from-tag=...</emphasis> - value of the from tag of the original call.
[View Less]
descartin created an issue (kamailio/kamailio#4313)
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for bug reports.
If you have questions about using Kamailio or related to its configuration file, ask on sr-users mailing list:
* https://lists.kamailio.org/mailman3/postorius/lists/sr-users.lists.kamailio…
If you have questions about developing extensions to Kamailio or its existing C code, ask on sr-dev mailing list:
…
[View More]
* https://lists.kamailio.org/mailman3/postorius/lists/sr-dev.lists.kamailio.o…
Please try to fill this template as much as possible for any issue. It helps the developers to troubleshoot the issue.
Note that an issue report may be closed automatically after about 2 months
if there is no interest from developers or community users on pursuing it, being
considered expired. In such case, it can be reopened by writing a comment that includes
the token `/notexpired`. About two weeks before considered expired, the issue is
marked with the label `stale`, trying to notify the submitter and everyone else
that might be interested in it. To remove the label `stale`, write a comment that
includes the token `/notstale`. Also, any comment postpone the `expire` timeline,
being considered that there is interest in pursuing the issue.
If there is no content to be filled in a section, the entire section can be removed.
You can delete the comments from the template sections when filling.
You can delete next line and everything above before submitting (it is a comment).
-->
### Description
Hello how are you, we are deploying a kamailio instance on 5.5.6 version
```
version: kamailio 5.5.6 (x86_64/linux) 0125f8-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 32MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 0125f8 -dirty
compiled on 12:01:31 May 21 2025 with gcc 12.2.0
```
and after some minutes processing calls we are seeing some core like this
```
(gdb) bt
#0 __strlen_evex () at ../sysdeps/x86_64/multiarch/strlen-evex.S:79
#1 0x00007f5753edc258 in __vfprintf_internal (s=s@entry=0x7ffc848f6aa0,
format=format@entry=0x5570eb867da8 "%s: %.*s%s%s%sBUG: qm: fragm. %p (address %p) beginning overwritten (%lx)! Memory allocator was called from %s:%u. Fragment marked by %s:%lu. Exec from %s:%u.\n",
ap=ap@entry=0x7ffc848f6cc8, mode_flags=mode_flags@entry=0) at ./stdio-common/vfprintf-process-arg.c:397
#2 0x00007f5753efc758 in __vsnprintf_internal (
string=0x7ffc848f6d40 "CRITICAL: <core> [core/mem/q_malloc.c:123]: qm_debug_check_frag(): BUG: qm: fragm. 0x7f569357aae0 (address 0x7f569357ab18) beginning overwritten (663d610a0d303030)! Memory allocator was called from co"..., maxlen=<optimized out>, maxlen@entry=960,
format=format@entry=0x5570eb867da8 "%s: %.*s%s%s%sBUG: qm: fragm. %p (address %p) beginning overwritten (%lx)! Memory allocator was called from %s:%u. Fragment marked by %s:%lu. Exec from %s:%u.\n",
args=args@entry=0x7ffc848f6cc8, mode_flags=mode_flags@entry=0) at ./libio/vsnprintf.c:114
#3 0x00007f5753f7ef2c in __vsyslog_internal (pri=138, fmt=<optimized out>, ap=ap@entry=0x7ffc848f7150, mode_flags=mode_flags@entry=0) at ./misc/syslog.c:218
#4 0x00007f5753f7f536 in __syslog (pri=<optimized out>, fmt=<optimized out>) at ./misc/syslog.c:91
#5 0x00005570eb6d8f25 in qm_debug_check_frag (qm=0x7f5692cd8000, f=0x7f569357aae0, file=0x5570eb861995 "core: core/usr_avp.c", line=627, efile=0x5570eb867c25 "core/mem/q_malloc.c", eline=511) at core/mem/q_malloc.c:123
#6 0x00005570eb6dd50f in qm_free (qmp=0x7f5692cd8000, p=0x7f569357ab18, file=0x5570eb861995 "core: core/usr_avp.c", func=0x5570eb863260 <__func__.8> "destroy_avp_list_unsafe", line=627, mname=0x5570eb861990 "core")
at core/mem/q_malloc.c:511
#7 0x00005570eb6b32c3 in destroy_avp_list_unsafe (list=0x7f5693545238) at core/usr_avp.c:627
#8 0x00007f57524b3ba9 in free_cell_helper (dead_cell=0x7f5693545038, silent=1, fname=0x7f57525b7bdf "h_table.c", fline=466) at h_table.c:255
#9 0x00007f57524b49a2 in free_hash_table () at h_table.c:466
#10 0x00007f57524e8772 in tm_shutdown () at t_funcs.c:88
#11 0x00005570eb6081a0 in destroy_modules () at core/sr_module.c:842
#12 0x00005570eb3d8161 in cleanup (show_status=1) at main.c:575
#13 0x00005570eb3d9da8 in shutdown_children (sig=15, show_status=1) at main.c:718
#14 0x00005570eb3dd0bc in handle_sigs () at main.c:816
#15 0x00005570eb3ea5d1 in main_loop () at main.c:1903
#16 0x00005570eb3f3f9c in main (argc=15, argv=0x7ffc848f8168) at main.c:3061
```
we are using debian12, and we see this log on the system when the crash
```
2025-07-08T06:21:55.874670+00:00 mad-proxy-4 kernel: [4744966.979706] traps: kamailio[3282034] general protection fault ip:7f18c2a719d8 sp:7ffde5c84d68 error:0 in libc.so.6[7f18c2930000+155000]
2025-07-08T06:21:55.910639+00:00 mad-proxy-4 kernel: [4744967.018138] traps: kamailio[3282015] general protection fault ip:561437233f64 sp:7ffde5c859a0 error:0 in kamailio[561436f31000+425000]
2025-07-08T06:21:55.919781+00:00 mad-proxy-4 systemd[1]: theseus.service: Main process exited, code=killed, status=11/SEGV
2025-07-08T06:21:55.919880+00:00 mad-proxy-4 systemd[1]: theseus.service: Failed with result 'signal'.
```
The traffic which seems is causing the issue may be using sipt module, functions sipt_set_calling and sipt_destination
the libc version we have in the system is
```
ii libc6:amd64 2.36-9+deb12u10 amd64 GNU C Library: Shared libraries
ii libc6-dbg:amd64 2.36-9+deb12u10 amd64 GNU C Library: detached debugging symbols
ii libc6-dev:amd64 2.36-9+deb12u10 amd64 GNU C Library: Development Libraries and Header Files
ii libc6-i386 2.36-9+deb12u10 amd64 GNU C Library: 32-bit shared libraries for AMD64
```
could be possible any issue with the module sipt related to the library we are using?
I checked commits between 5.5.6 and 6.0 and I think the difference is related to kemi support and some format changes only
thanks a lot and regards
david escartin
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
#### Debugging Data
<!--
If you got a core dump, use gdb to extract troubleshooting data - full backtrace,
local variables and the list of the code at the issue location.
gdb /path/to/kamailio /path/to/corefile
bt full
info locals
list
If you are familiar with gdb, feel free to attach more of what you consider to
be relevant.
-->
```
#0 __strlen_evex () at ../sysdeps/x86_64/multiarch/strlen-evex.S:79
79 ../sysdeps/x86_64/multiarch/strlen-evex.S: No existe el fichero o el directorio.
(gdb) bt
#0 __strlen_evex () at ../sysdeps/x86_64/multiarch/strlen-evex.S:79
#1 0x00007f5753edc258 in __vfprintf_internal (s=s@entry=0x7ffc848f6aa0,
format=format@entry=0x5570eb867da8 "%s: %.*s%s%s%sBUG: qm: fragm. %p (address %p) beginning overwritten (%lx)! Memory allocator was called from %s:%u. Fragment marked by %s:%lu. Exec from %s:%u.\n",
ap=ap@entry=0x7ffc848f6cc8, mode_flags=mode_flags@entry=0) at ./stdio-common/vfprintf-process-arg.c:397
#2 0x00007f5753efc758 in __vsnprintf_internal (
string=0x7ffc848f6d40 "CRITICAL: <core> [core/mem/q_malloc.c:123]: qm_debug_check_frag(): BUG: qm: fragm. 0x7f569357aae0 (address 0x7f569357ab18) beginning overwritten (663d610a0d303030)! Memory allocator was called from co"..., maxlen=<optimized out>, maxlen@entry=960,
format=format@entry=0x5570eb867da8 "%s: %.*s%s%s%sBUG: qm: fragm. %p (address %p) beginning overwritten (%lx)! Memory allocator was called from %s:%u. Fragment marked by %s:%lu. Exec from %s:%u.\n",
args=args@entry=0x7ffc848f6cc8, mode_flags=mode_flags@entry=0) at ./libio/vsnprintf.c:114
#3 0x00007f5753f7ef2c in __vsyslog_internal (pri=138, fmt=<optimized out>, ap=ap@entry=0x7ffc848f7150, mode_flags=mode_flags@entry=0) at ./misc/syslog.c:218
#4 0x00007f5753f7f536 in __syslog (pri=<optimized out>, fmt=<optimized out>) at ./misc/syslog.c:91
#5 0x00005570eb6d8f25 in qm_debug_check_frag (qm=0x7f5692cd8000, f=0x7f569357aae0, file=0x5570eb861995 "core: core/usr_avp.c", line=627, efile=0x5570eb867c25 "core/mem/q_malloc.c", eline=511) at core/mem/q_malloc.c:123
#6 0x00005570eb6dd50f in qm_free (qmp=0x7f5692cd8000, p=0x7f569357ab18, file=0x5570eb861995 "core: core/usr_avp.c", func=0x5570eb863260 <__func__.8> "destroy_avp_list_unsafe", line=627, mname=0x5570eb861990 "core")
at core/mem/q_malloc.c:511
#7 0x00005570eb6b32c3 in destroy_avp_list_unsafe (list=0x7f5693545238) at core/usr_avp.c:627
#8 0x00007f57524b3ba9 in free_cell_helper (dead_cell=0x7f5693545038, silent=1, fname=0x7f57525b7bdf "h_table.c", fline=466) at h_table.c:255
#9 0x00007f57524b49a2 in free_hash_table () at h_table.c:466
#10 0x00007f57524e8772 in tm_shutdown () at t_funcs.c:88
#11 0x00005570eb6081a0 in destroy_modules () at core/sr_module.c:842
#12 0x00005570eb3d8161 in cleanup (show_status=1) at main.c:575
#13 0x00005570eb3d9da8 in shutdown_children (sig=15, show_status=1) at main.c:718
#14 0x00005570eb3dd0bc in handle_sigs () at main.c:816
#15 0x00005570eb3ea5d1 in main_loop () at main.c:1903
#16 0x00005570eb3f3f9c in main (argc=15, argv=0x7ffc848f8168) at main.c:3061
```
#### Log Messages
<!--
Check the syslog file and if there are relevant log messages printed by Kamailio, add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your log messages here)
```
#### SIP Traffic
<!--
If the issue is exposed by processing specific SIP messages, grab them with ngrep or save in a pcap file, then add them next, or attach to issue, or provide a link to download them (e.g., to a pastebin site).
-->
```
(paste your sip traffic here)
```
### Possible Solutions
<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.5.6 (x86_64/linux) 0125f8-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 32MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 0125f8 -dirty
compiled on 12:01:31 May 21 2025 with gcc 12.2.0
```
* **Operating System**:
<!--
Details about the operating system, the type: Linux (e.g.,: Debian 8.4, Ubuntu 16.04, CentOS 7.1, ...), MacOS, xBSD, Solaris, ...;
Kernel details (output of `lsb_release -a` and `uname -a`)
-->
```
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
Linux mad-proxy-4.bts.io 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4313
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4313(a)github.com>
[View Less]