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]