Module: kamailio
Branch: master
Commit: df8e38958a3fa0a2e356bec727bb8d7ce19bec43
URL: https://github.com/kamailio/kamailio/commit/df8e38958a3fa0a2e356bec727bb8d7…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-05-27T08:58:17+02:00
secfilter: remove unnecessary check on clean up
---
Modified: src/modules/secfilter/secfilter_db.c
---
Diff: https://github.com/kamailio/kamailio/commit/df8e38958a3fa0a2e356bec727bb8d7…
Patch: https://github.com/kamailio/kamailio/commit/df8e38958a3fa0a2e356bec727bb8d7…
---
diff --git a/src/modules/secfilter/secfilter_db.c b/src/modules/secfilter/secfilter_db.c
index 1c0138b0193..24884b231c9 100644
--- a/src/modules/secfilter/secfilter_db.c
+++ b/src/modules/secfilter/secfilter_db.c
@@ -185,9 +185,9 @@ int secf_append_rule(int action, int type, str *value)
/**
* @brief Removes entries from a whitelist or blacklist based on action, type, and value.
*
- * The function validates the action and type, locates the relevant list, and iterates
- * through its nodes to find and remove all matches for the given value. If matches are found,
- * the corresponding memory is freed, and the list pointers are updated. Logs are generated
+ * The function validates the action and type, locates the relevant list, and iterates
+ * through its nodes to find and remove all matches for the given value. If matches are found,
+ * the corresponding memory is freed, and the list pointers are updated. Logs are generated
* for each removal and at the end of the process to summarize the result.
* @param action: Specifies the target list (0 = blacklist, 1 = whitelist, 2 = destination blacklist).
* @param type: Indicates the type of rule to be removed (e.g., domain, IP, user, etc.).
@@ -358,10 +358,8 @@ int secf_load_db(void)
lock_release(&(*secf_data)->lock);
clean:
- if(db_res) {
- if(db_funcs.free_result(db_handle, db_res) < 0) {
- LM_DBG("Failed to free the result\n");
- }
+ if(db_funcs.free_result(db_handle, db_res) < 0) {
+ LM_DBG("Failed to free the result\n");
}
db_funcs.close(db_handle);
return res;
sergey-safarov created an issue (kamailio/kamailio#4241)
### Description
In the GitHub Actions present Alpine Docker image build error
```
tar (child): kamailio_min-without_os_files.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
```
https://github.com/kamailio/kamailio/actions/runs/14722992691/job/413201110…
With high probability, this does not work
I will work to fix this, but if possible, it will be fine to switch to use `cmake` for Alpine Docker image.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4241
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4241(a)github.com>
sergey-safarov created an issue (kamailio/kamailio#4255)
### Description
I now make testing `cmake` packaging and see this error
```
RPM build errors:
Directory not found: /root/rpmbuild/BUILDROOT/kamailio-6.1.0-dev1.0.el10.centos.x86_64/usr/share/kamailio/postgres
File not found: /root/rpmbuild/BUILDROOT/kamailio-6.1.0-dev1.0.el10.centos.x86_64/usr/share/kamailio/postgres/*
```
### Troubleshooting
#### Reproduction
I use this module list for build
https://github.com/sergey-safarov/kamailio/blob/master/pkg/kamailio/obs/kam…
@xkaraman could you look?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4255
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4255(a)github.com>
Module: kamailio
Branch: master
Commit: c7fcdfdb13aeec9aeae726a9cc1ccaeda557e7bb
URL: https://github.com/kamailio/kamailio/commit/c7fcdfdb13aeec9aeae726a9cc1ccae…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-05-23T11:10:13Z
cmake: Add some check for finding group name if using non K-variants of group names
---
Modified: cmake/groups.cmake
---
Diff: https://github.com/kamailio/kamailio/commit/c7fcdfdb13aeec9aeae726a9cc1ccae…
Patch: https://github.com/kamailio/kamailio/commit/c7fcdfdb13aeec9aeae726a9cc1ccae…
---
diff --git a/cmake/groups.cmake b/cmake/groups.cmake
index a41560f17fc..c629ee49f93 100644
--- a/cmake/groups.cmake
+++ b/cmake/groups.cmake
@@ -764,6 +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()
+ 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)
@@ -776,6 +790,8 @@ function(find_group_name module)
"${group}"
PARENT_SCOPE
)
+ return()
endif()
endforeach()
+ message((STATUS "module ${module} not found in any group"))
endfunction()
Module: kamailio
Branch: master
Commit: 0fb182720428b276793899debb210279a0b5ec97
URL: https://github.com/kamailio/kamailio/commit/0fb182720428b276793899debb21027…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-05-23T11:10:13Z
cmake: Add missing package KSTANDARD
- When `ALL_PACKAGED` is used, KSTANDARD should be built as well, but not KMINI which is a subset of it.
- Fix RTP_MEDIA group name
---
Modified: cmake/groups.cmake
---
Diff: https://github.com/kamailio/kamailio/commit/0fb182720428b276793899debb21027…
Patch: https://github.com/kamailio/kamailio/commit/0fb182720428b276793899debb21027…
---
diff --git a/cmake/groups.cmake b/cmake/groups.cmake
index 90c47413d22..a41560f17fc 100644
--- a/cmake/groups.cmake
+++ b/cmake/groups.cmake
@@ -688,6 +688,7 @@ set(MODULE_GROUP_KRTP_MEDIA_SERVER ${MOD_LIST_RTP_MEDIA_SERVER})
set(STATIC_MODULES "")
set(MODULE_GROUP_PACKAGE_GROUPS
+ KSTANDARD
KPCRE
KMYSQL
KPOSTGRES
@@ -748,7 +749,7 @@ set(MODULE_GROUP_PACKAGE_GROUPS
KNGHTTP2
KGCRYPT
KSECSIPID
- KRT_MEDIA_SERVER
+ KRTP_MEDIA_SERVER
)
# Add group names to available group and provide "ALL_PACKAGED" as well
Hello,
I have noticed that the git tag for release 5.7.7 was missing, I've just set it.
The 5.7.7-bullseye docker image is also missing from https://github.com/kamailio/kamailio-docker/pkgs/container/kamailio
Not sure if this is done automatically, if not - please can somebody please trigger the workflow to create it?
Thank you,
Henning
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[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>
xadhoom created an issue (kamailio/kamailio#4252)
### Description
A kamailio cluster which replicates presentities and usrloc via dmq may incur into duplicated presentities and notifications depending on config.
The problematic setup, where each kamailio node has the following setup:
- presence enabled with dmq
- usrloc distributed with dmq
- pua_reginfo used to publish reginfo to self
Really is multiplicated by the numbers of nodes, so 4 nodes -> 4 times notifications and presentities.
### Troubleshooting
The problem arise because pua_reginfo hooks to usrloc and every time a "save()" is done a publish is sent, which is by design. Then the handled publish generates a presentity which is replicated via dmq from presence module.
Now, if also usrloc is replicated via DMQ, the handling of such message still trigger the hook, causing another publish with generates a different presentiy, since is new and the e-tag is different.
This causes subscribers to receive <number of nodes> notifications on every status change.
### Possible Solutions
The approach can be to optionally disable that hook (basically making pua_reginfo skipping publish) when handling a message via DMQ, so the usrloc replica is just saved.
In other modules, like pua_dialoginfo or pua_usrloc this can be already done, since publishing can be controlled from script.
### Additional Information
* **Kamailio Version**
```
6.0.1
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4252
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4252(a)github.com>
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:
* 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>
QuincyGao created an issue (kamailio/kamailio#4190)
<!--
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/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 want to use opensips as SBC, When the agent registers to kamailio, the contact content is modified to the ip and port of kamailio, and then Register is forwarded to the agent.
remove_hf("Contact") can't remove the whole Contact( field, vlue).
here is my config:
```
route[REGISTRAR] {
if (!is_method("REGISTER")) return;
if(isflagset(FLT_NATS)) {
setbflag(FLB_NATB);
#!ifdef WITH_NATSIPPING
# do SIP NAT pinging
setbflag(FLB_NATSIPPING);
#!endif
}
fix_nated_contact();
if (!save("location","0x02")) {
#if (!save("location")) {
sl_reply_error();
}
$fs="udp:172.16.4.111:5461";
$du="sip:172.16.4.114:5060";
remove_hf("Contact");
$var(contact) = "Contact: <sip:" +$fU+"@"+"172.16.4.111:5461>;expires=120\r\n" ;
append_hf("$var(contact)");
route(RELAY);
exit;
}
```
here is the sip message:
```
2025/03/26 16:36:07.706093 172.16.4.111:5461 -> 172.16.4.114:5060
REGISTER sip:172.16.4.111:5460 SIP/2.0
Via: SIP/2.0/UDP 172.16.4.111:5461;branch=z9hG4bKfc7e.d2df36f3b5681afeb71e442e645de38d.0
Via: SIP/2.0/UDP 172.16.80.3:49309;received=172.16.80.3;rport=49309;branch=z9hG4bKPj8ab8bd1d3c3a4c1bb0cd639540fa3183
Max-Forwards: 69
From: <sip:1008@172.16.4.111>;tag=95f7f5601f8b40458a1efe6923ab0a29
To: <sip:1008@172.16.4.111>
Call-ID: f84b643f5d284d18a0d8175e1ef4d747
CSeq: 33264 REGISTER
User-Agent: MicroSIP/3.21.6
sip:1008@172.16.80.3:49309;obExpires: 120
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length: 0
Contact: <sip:1008@172.16.4.111:5461>;expires=120
```
you can see the problem is that: `sip:1008@172.16.80.3:49309;obExpires: 120` ,
`sip:1008@172.16.80.3:49309` is the value of the Contact field after fix_nated_contact().
### 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.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/4190
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4190(a)github.com>
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 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>
Hello,
Kamailio SIP Server v5.7.7 stable release is out.
This is a maintenance release of the latest stable branch, 5.7, that
includes fixes since the release of v5.7.6. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.7.x. Deployments running previous v5.7.x
versions are strongly recommended to be upgraded to v5.7.7.
Note that 5.7 is now the third last stable branch, v5.7.7 being the last
planned released in 5.7.x series. The latest two stable branch are 5.8
and 6.0, with v6.0.1 being released a while ago.
For more details about version 5.7.7 (including links and guidelines to
download the tarball or from GIT repository), visit:
 * https://www.kamailio.org/w/2025/05/kamailio-v5-7-7-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Hello,
I am considering to release Kamailio v5.7.7 (out of branch 5.7) on
Wednesday, May 21, 2025, as the last one from the 5.7.x series, to mark
the end of support for it. Currently 5.8.x and 6.0.x are the latest two
maintained branches.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
amnapa created an issue (kamailio/kamailio#4205)
### Description
Using sCSCF sample found [here](https://github.com/kamailio/kamailio/blob/master/misc/examples/ims/sc…, after calling ims_www_challenge in REGISTER route block and sending a Diameter MAR request, the control is never passed to REG_MAR_REPLY route block and debug messages within REG_MAR_REPLY are not logged. This is not the case with REG_SAR_REPLY and PRE_REG_SAR_REPLY, those blocks are executed as expected.
```
######################################################################
# Route for handling Registrations:
######################################################################
route[REGISTER] {
xlog("ALGORITHM IS [$aa] and User-Agent is [$ua]\n");
$var(alg) = $aa;
if ($aa == $null) {
$var(alg) = "MD5"; #force to MD5 for zoiper.... non-ims
}
#!ifdef WITH_AUTH
if (!ims_www_authenticate("$td")) {
#!else
if (($var(alg) == "MD5") && (!ims_www_authenticate("$td"))) {
#!endif
if ($? == -2) {
send_reply("403", "Authentication Failed");
exit;
} else if ($? == -3) {
send_reply("400", "Bad Request");
exit;
} else if ($? == -9) {
xlog("L_DBG", "Authentication re-sync requested\n");
ims_www_resync_auth("REG_RESYNC_REPLY", "$td");
exit;
} else {
#user has not been authenticated. Lets send a challenge via 401 Unauthorized
xlog("L_DBG", "About to challenge! auth_ims\n");
ims_www_challenge("REG_MAR_REPLY", "$td", "$var(alg)");
exit;
}
} else {
xlog("L_DBG", "Auth succeeded\n");
# We need to check if this user is registered or not
if (!impu_registered("location")) {
xlog("L_ERR", "Not REGISTERED\n");
save("PRE_REG_SAR_REPLY", "location");
exit;
} else {
isc_match_filter_reg("1", "location");
save("REG_SAR_REPLY", "location");
exit;
}
}
}
route[REG_MAR_REPLY]
{
#this is async so to know status we have to check the reply avp
xlog("L_DBG", "maa_return code is $avp(s:maa_return_code)\n");
switch ($avp(s:maa_return_code)){
case 1: #success
xlog("L_DBG", "MAR success - 401/407 response sent from module\n");
break;
case -1: #failure
xlog("L_ERR", "MAR failure - error response sent from module\n");
break;
case -2: #error
xlog("L_ERR", "MAR error - sending error response now\n");
send_reply("500", "MAR failed");
break;
default:
xlog("L_ERR", "Unknown return code from MAR, value is [$avp(s:maa_return_code)]\n");
send_reply("500", "Unknown response code from MAR");
break;
}
exit;
}
```
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
#### Debugging Data
```
(paste your debugging data here)
```
#### Log Messages
```
ERROR: *** cfgtrace:request_route=[REGISTER] c=[/usr/local/etc/kamailio/kamailio.cfg] l=712 a=27 n=ims_www_challenge
DEBUG: ims_auth [authorize.c:290]: challenge(): Looking for route block [REG_MAR_REPLY]
INFO: ims_auth [cxdx_mar.c:76]: create_return_code(): created AVP successfully : [maa_return_code] - [-2]
DEBUG: ims_auth [authorize.c:314]: challenge(): Need to challenge for realm [ims.mnc072.mcc432.3gppnetwork.org]
DEBUG: ims_auth [authorize.c:321]: challenge(): Checking if REGISTER is authorized for realm [ims.mnc072.mcc432.3gppnetwork.org]...
DEBUG: ims_auth [authorize.c:1446]: get_auth_userdata(): Searching auth_userdata for IMPU sip:bob@ims.mnc072.mcc432.3gppnetwork.org (Hash 295)
DEBUG: ims_auth [authorize.c:1455]: get_auth_userdata(): Found auth_userdata
DEBUG: ims_auth [authorize.c:1061]: get_auth_vector(): looping through AV status is 3 and were looking for 0
DEBUG: tm [t_lookup.c:1343]: t_newtran(): msg (0x7f8d3f410cb0) id=1/11 global id=1/11 T start=(nil)
DEBUG: tm [t_lookup.c:498]: t_lookup_request(): start searching: hash=21555, isACK=0
DEBUG: tm [t_lookup.c:456]: matching_3261(): RFC3261 transaction matching failed - via branch [z9hG4bK3345.d6f2aff0d9192c2647aca3baea62cf94.1]
DEBUG: tm [t_lookup.c:681]: t_lookup_request(): no transaction found
DEBUG: tm [t_hooks.c:337]: run_reqin_callbacks_internal(): trans=0x7f8d2bff4520, callback type 1, id 0 entered
DEBUG: ims_auth [authorize.c:457]: challenge(): Suspending SIP TM transaction
DEBUG: ims_auth [authorize.c:1526]: multimedia_auth_request(): Sending MAR
DEBUG: ims_auth [cxdx_mar.c:572]: cxdx_send_mar(): Successfully sent async diameter
DEBUG: tm [t_lookup.c:1628]: t_lookup_ident_filter(): transaction found
INFO: ims_auth [cxdx_avp.c:134]: cxdx_get_avp(): cxdx_get_experimental_result_code: Failed finding avp (avp_code = 297, vendor_id = 0)
DEBUG: ims_auth [authorize.c:1557]: pack_challenge(): setting QOP str used is [, qop="auth"]
DEBUG: ims_auth [authorize.c:1559]: pack_challenge(): QOP str used is [, qop="auth"]
DEBUG: tm [t_reply.c:1660]: cleanup_uac_timers(): RETR/FR timers reset
DEBUG: tm [t_reply.c:595]: _reply_light(): reply sent out. buf=0x7f8d3f4120b8: SIP/2.0 401 Unauthor..., shmem=0x7f8d2bff9288: SIP/2.0 401 Unauthor
DEBUG: tm [t_reply.c:606]: _reply_light(): finished
DEBUG: ims_auth [authorize.c:1446]: get_auth_userdata(): Searching auth_userdata for IMPU sip:bob@ims.mnc072.mcc432.3gppnetwork.org (Hash 295)
DEBUG: ims_auth [authorize.c:1455]: get_auth_userdata(): Found auth_userdata
DEBUG: ims_auth [authorize.c:1679]: add_auth_vector(): Adding auth_vector (status 1) for IMPU sip:bob@ims.mnc072.mcc432.3gppnetwork.org / IMPI bob(a)ims.mnc072.mcc432.3gppnetwork.org (Hash 295)
DEBUG: ims_auth [cxdx_mar.c:483]: async_cdp_callback(): DBG:UAR Async CDP callback: ... Done resuming transaction
INFO: ims_auth [cxdx_mar.c:76]: create_return_code(): created AVP successfully : [maa_return_code] - [1]
DEBUG: ims_auth [cxdx_mar.c:495]: async_cdp_callback(): Destroying current transaction prevented!
DEBUG: tm [t_lookup.c:1620]: t_lookup_ident_filter(): transaction in terminated phase - skipping
ERROR: tm [t_suspend.c:196]: t_continue_helper(): active transaction not found
DEBUG: ims_auth [cxdx_mar.c:84]: free_saved_transaction_data(): Freeing saved transaction data: async
```
#### SIP Traffic
```
(paste your sip traffic here)
```
### Possible Solutions
The issue is related to ims_auth module, in [cxdx_mar.c ](https://github.com/kamailio/kamailio/blob/master/src/modules/ims_auth/cxdx_mar.c). within async_cdp_callback function, if I replace:
```
tmb.t_continue(data->tindex, data->tlabel, data->act);
````
with the following:
```
tmb.t_continue_skip_timer(data->tindex, data->tlabel, data->act);
```
the issue will be fixed and the control will be passed to REG_MAR_REPLY route block. In fact, in ims_registrar_scscf module, in [cxdx_sar.c ](https://github.com/kamailio/kamailio/blob/master/src/modules/ims_registrar_scscf/cxdx_sar.c) file, the t_continue_skip_timer is called instead of t_continue, if I replace it with t_continue the same issue happens for SAR callbacks.
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 6.1.0-dev0 (x86_64/linux) c858ce-dirty
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: c858ce -dirty
compiled on 10:33:37 Apr 5 2025 with gcc 11.4.0
```
* **Operating System**:
```
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
Linux kuber-worker 5.15.0-133-generic #144-Ubuntu SMP Fri Feb 7 20:47:38 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/4205
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4205(a)github.com>
Hello,
I am using exact same logic for which is define in this documentation and single device its working fine.
https://www.kamailio.org/events/2015-KamailioWorld/Day2/20-Federico.Cabiddu…
But seems like if multiple registration with same extension, like if extension 102 logged in mobile as well web. If web device registered and mobile is not registered with wss, then the Current transaction is not going to suspend due to its consider like there is only one location entry on location table.so only one Invite send to web and mobile its going to send notification but never get Invite, even it is going to register using push notification.
So below LOCATION function should be called and sending invite to registered extension and should be waiting for Other device as well. But in my case its consider like only one device is there and transaction is not suspending.
Could you check and suggest me which part of code need to improve to so i can make it working with registered device with parallel forking for adding new branch.
Here is my code.
modparam("registrar", "max_contacts", 10)
modparam("registrar", "append_branches", 1)
modparam("registrar", "use_path", 1)
modparam("registrar", "path_mode", 1)
loadmodule "tsilo.so"
modparam("tsilo", "use_domain", 1)
modparam("htable", "htable", "vtp=>size=100;autoexpire=30;")
# append branches or resume the transaction
route[PUSHJOIN] {
$var(hjoin) = 0;
lock("$tU");
$var(hjoin) = $sht(vtp=>join::$tU);
$var(hstored) = $sht(vtp=>stored::$tU);
$sht(vtp=>join::$tU) = $null;
unlock("$tU");
if ($var(hjoin)==0)
{
if ($var(hstored))
ts_append("location", "$tU");
return;
}
$var(id_index) = $(var(hjoin){s.select,0,:}{s.int});
$var(id_label) = $(var(hjoin){s.select,1,:}{s.int});
t_continue("$var(id_index)", "$var(id_label)", "INVRESUME");
}
# lookup and relay after resuming transaction
route[INVRESUME] {
lookup("location");
xlog("L_INFO","[RESUME] rm=$rm ru=$ru du=$du \n");
t_relay();
ts_store();
$sht(vtp=>stored::$rU) = 1;
$sht(vtp=>id_index::$tu) = $null;
$sht(vtp=>id_label::$tu) = $null;
xlog("L_INFO","stored transaction [$T(id_index):$T(id_label)] $fU => $rU\n");
}
route[SUSPEND] {
if ( !t_suspend() ) {
xlog("L_ERROR","[SUSPEND] failed suspending trasaction [$T(id_index):$T(id_label)]\n");
send_reply("501", "Suspending error");
exit;
}
xlog("L_INFO","[SUSPEND] suspended transaction [$T(id_index):$T(id_label)] $fU=> $rU\n");
$sht(vtp=>join::$rU) = "" + $T(id_index) + ":" + $T(id_label);
xlog("L_INFO","htable key value [$sht(vtp=>join::$rU)]\n");
}
route[SENDPUSH] {
$avp(platform) = $hdr(X-pn-platform);
$var(headers) = "Content-Type: application/json\r\nAuthorization: Bearer 55466cc-c789-4a48-39c8-219ebaa1512f";
$var(body) = "{\"user\": \"" + $rU + "\", " +
"\"platform\": \"" + $avp(platform) + "\"}";
http_client_query("https://handlepush.xxx.com/v2/phone/call/send_notification_kamalio",
"$var(body)",
"$var(headers)",
"$var(res)");
}
# User location service
route[LOCATION] {
if (!lookup("location"))
{
send_reply("100", "Trying");
xlog("L_INFO","SUSPENDING TRANASACTION $fU => $rU\n");
route(SUSPEND);
}
else
{
t_relay();
ts_store();
$sht(vtp=>stored::$rU) = 1;
xlog("L_INFO","stored transaction [$T(id_index):$T(id_label)] $fU=> $rU\n");
}
route(SENDPUSH);
exit;
}
if (is_method("REGISTER") || from_uri==myself) {
xlog("L_INFO", "SAVING TO LOCATIONS $si:$sp\n");
if (!save("location")) {
sl_reply_error();
}
route(PUSHJOIN);
exit;
}
Can you help me to understand why parallel forking not working in this case ?
Thanks
there's no ``kamailio-ims_dialog.xml`` at ``src/lib/srdb1/schema`` but there's a manual file created at ``utils/kamctl/mysql/ims_dialog-create.sql``
Same thing for:
- ``utils/kamctl/mysql/ims_charging-create.sql``
- ``utils/kamctl/mysql/ims_usrloc_pcscf-create.sql``
- ``utils/kamctl/mysql/ims_usrloc_scscf-create.sql``
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4100
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4100(a)github.com>
<!-- 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, 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)
- [x] 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
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
This PRs main focus is to introduce components groups for easier building of various groups.
Other main changes:
- Forbid in-source builds
- First draft packaging file for easier debian generation
- Introduce checksymbol exists for feature detection
-
Since during the dev of itm more and more commits were included, I am creating a PR for easier rollback if something goes wrong.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4244
-- Commit Summary --
* cmake: Use components to install groups
* cmake: Forbid in-source builds
* cmake: Warning if no modules/group were selected
* cmake: If BUILD_DOC options is set to ON, include doc and man targets to default target!
* cmake: quote variables for expansion
* cmake: Better handling of doc generation dependencies
* cmake: Fix formatting according to cmake-format config file
* cmake: Refactor packaging setup and improve installation paths
* cmake: Fix build paths for dbschema.
* cmake: Remove warning message
* cmake: Add check and warning for module docs
* cmake: Add missing defintion
* cmake: Add some comments
* cmake: Introduce CheckSymbolExists for feature detection
* cmake: Remove unused groups
* cmake: Fix wrong name of option
* cmake: Remove unnessecary components to be consistent
* cmake: Quiet fail for rabbit-mq
* cmake: Remove find_package for ORTP and Mediastreamer2 libraries
-- File Changes --
M CMakeLists.txt (23)
M cmake/compiler-specific.cmake (6)
A cmake/db_files.cmake (51)
A cmake/dbschema.cmake (117)
A cmake/deb-packaging.cmake (18)
M cmake/defs.cmake (51)
M cmake/groups.cmake (179)
M cmake/modules-docs.cmake (144)
M cmake/os-specific.cmake (8)
M cmake/os-specific/darwin.cmake (8)
M cmake/os-specific/dragonfly.cmake (12)
M cmake/os-specific/freebsd.cmake (8)
M cmake/os-specific/linux.cmake (14)
M src/CMakeLists.txt (79)
M src/core/CMakeLists.txt (2)
M src/modules/CMakeLists.txt (46)
M src/modules/app_perl/CMakeLists.txt (10)
M src/modules/auth_radius/CMakeLists.txt (3)
M src/modules/crypto/CMakeLists.txt (2)
M src/modules/db_berkeley/CMakeLists.txt (7)
M src/modules/db_mongodb/CMakeLists.txt (25)
M src/modules/db_mysql/CMakeLists.txt (7)
M src/modules/db_oracle/CMakeLists.txt (7)
M src/modules/db_postgres/CMakeLists.txt (7)
M src/modules/db_redis/CMakeLists.txt (3)
M src/modules/db_sqlite/CMakeLists.txt (7)
M src/modules/db_text/CMakeLists.txt (13)
M src/modules/dnssec/CMakeLists.txt (2)
M src/modules/kazoo/CMakeLists.txt (4)
M src/modules/rabbitmq/CMakeLists.txt (3)
M src/modules/rtp_media_server/CMakeLists.txt (21)
M src/modules/snmpstats/CMakeLists.txt (3)
M src/modules/tls/CMakeLists.txt (2)
M src/modules/xhttp_pi/CMakeLists.txt (18)
M utils/db_berkeley/CMakeLists.txt (1)
M utils/kamcmd/CMakeLists.txt (13)
M utils/kamctl/CMakeLists.txt (293)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4244.patchhttps://github.com/kamailio/kamailio/pull/4244.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4244
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4244(a)github.com>
Module: kamailio
Branch: master
Commit: 42e1a9c3c5df65cae8a5f559f6fe47a6de5f6fac
URL: https://github.com/kamailio/kamailio/commit/42e1a9c3c5df65cae8a5f559f6fe47a…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-05-19T10:48:51Z
cmake: Remove find_package for ORTP and Mediastreamer2 libraries
- Use pkg-config instead because their cmake configs are not up to standard and complicates things
---
Modified: src/modules/rtp_media_server/CMakeLists.txt
---
Diff: https://github.com/kamailio/kamailio/commit/42e1a9c3c5df65cae8a5f559f6fe47a…
Patch: https://github.com/kamailio/kamailio/commit/42e1a9c3c5df65cae8a5f559f6fe47a…
---
diff --git a/src/modules/rtp_media_server/CMakeLists.txt b/src/modules/rtp_media_server/CMakeLists.txt
index 59a1d868d34..15114891902 100644
--- a/src/modules/rtp_media_server/CMakeLists.txt
+++ b/src/modules/rtp_media_server/CMakeLists.txt
@@ -2,18 +2,15 @@ file(GLOB MODULE_SOURCES "*.c")
add_library(${module_name} SHARED ${MODULE_SOURCES})
-find_package(ortp QUIET)
-if(NOT ortp_FOUND)
- find_package(PkgConfig REQUIRED)
- pkg_check_modules(ortp REQUIRED IMPORTED_TARGET ortp)
- add_library(ortp ALIAS PkgConfig::ortp)
-endif()
+find_package(PkgConfig REQUIRED)
-find_package(mediastreamer2 QUIET)
-if(NOT mediastreamer2_FOUND)
- find_package(PkgConfig REQUIRED)
- pkg_check_modules(mediastreamer2 REQUIRED IMPORTED_TARGET mediastreamer)
- add_library(mediastreamer2 ALIAS PkgConfig::mediastreamer2)
-endif()
+# ortp and mediastreamer2 do have cmake support on newer version but
+# is not up to standard and complicates things.
+# So we use pkg-config to find them.
+pkg_check_modules(ortp REQUIRED IMPORTED_TARGET ortp)
+add_library(ortp ALIAS PkgConfig::ortp)
+
+pkg_check_modules(mediastreamer2 REQUIRED IMPORTED_TARGET mediastreamer)
+add_library(mediastreamer2 ALIAS PkgConfig::mediastreamer2)
target_link_libraries(${module_name} PRIVATE ortp mediastreamer2)