Running `5.7.1:441300`, trying to loop through the results of an `HGETALL` operation in Redis:
```
127.0.0.1:6379[1]> keys *
1) "customer_params:14045551212:1.1.1.1"
127.0.0.1:6379[1]> hgetall customer_params:14045551212:1.1.1.1
1) "auth_ha1"
2) "9febe8cf72c6bd063b8978cded892e4bb"
```
This means that the returned type will be `$redisd(rpl_arr)` and a loop is required. For any given key value `$redis(r=>value[x])`, the value is in the next array slot, at `$redis(r=>value[x + 1])`.
With that in mind, I tried this loop:
```
$var(i) = 0;
while($var(i) < $redis(r=>size)) {
$var(key) = $redis(r=>value[$var(i)]);
switch($var(key)) {
case "auth_ha1":
$var(auth_ha1) = $redis(r=>value[$var(i)+1]);
break;
}
$var(i) = $var(i) + 1;
}
```
However, this ends up storing the key value ("auth_ha1") in `$var(auth_ha1)`. I also tried `$(var(i){s.int}) + 1` for the subscript value.
To get the actual next-slot value, the expression evaluation has to be externalised into an intermediate variable:
```
while($var(i) < $redis(r=>size)) {
$var(key) = $redis(r=>value[$var(i)]);
# For some reason, Kamailio cannot evaluate an addition expression inside this subscript: $redis(r=>value[EXPR])
$var(idx) = $var(i) + 1;
switch($var(key)) {
case "auth_ha1":
$var(auth_ha1) = $redis(r=>value[$var(idx)]);
break;
}
$var(i) = $var(i) + 1;
}
```
This works, and yields `9febe8cf72c6bd063b8978cded892e4bb`.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3526
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3526(a)github.com>
Module: kamailio
Branch: master
Commit: ca613b491412a7ebb6f3d59956a8cbbde1cb725a
URL: https://github.com/kamailio/kamailio/commit/ca613b491412a7ebb6f3d59956a8cbb…
Author: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Committer: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Date: 2023-11-07T23:24:45+01:00
github: close-stale-issues
As discussed at Kamailio developers meeting 2023
---
Added: .github/workflows/issue_management.yml
---
Diff: https://github.com/kamailio/kamailio/commit/ca613b491412a7ebb6f3d59956a8cbb…
Patch: https://github.com/kamailio/kamailio/commit/ca613b491412a7ebb6f3d59956a8cbb…
---
diff --git a/.github/workflows/issue_management.yml b/.github/workflows/issue_management.yml
new file mode 100644
index 00000000000..d99a934cdfd
--- /dev/null
+++ b/.github/workflows/issue_management.yml
@@ -0,0 +1,19 @@
+name: 'Close stale issues and PRs'
+on:
+ schedule:
+ - cron: '30 2 * * *'
+permissions:
+ issues: write
+ pull-requests: write
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v8
+ with:
+ stale-issue-message: 'This issue is stale because it has been open 6 weeks with no activity. Remove stale label or comment or this will be closed in 2 weeks.'
+ stale-pr-message: 'This PR is stale because it has been open 6 weeks with no activity. Remove stale label or comment or this will be closed in 2 weeks.'
+ days-before-stale: 42
+ days-before-close: 14
+ exempt-issue-labels: bug
+ remove-stale-when-updated: true
Module: kamailio
Branch: master
Commit: 4587d46d06fe4fe1d7c754b46b0f68910cbca633
URL: https://github.com/kamailio/kamailio/commit/4587d46d06fe4fe1d7c754b46b0f689…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2023-11-07T17:19:44+01:00
core: set atexit to default to no
---
Modified: src/main.c
---
Diff: https://github.com/kamailio/kamailio/commit/4587d46d06fe4fe1d7c754b46b0f689…
Patch: https://github.com/kamailio/kamailio/commit/4587d46d06fe4fe1d7c754b46b0f689…
---
diff --git a/src/main.c b/src/main.c
index e299db3b319..8c3e34e5bc7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -167,7 +167,7 @@ Options:\n\
--atexit=val Control atexit callbacks execution from external libraries\n\
which may access destroyed shm memory causing crash on shutdown.\n\
Can be y[es] or 1 to enable atexit callbacks, n[o] or 0 to disable,\n\
- default is yes.\n\
+ default is no.\n\
-A define Add config pre-processor define (e.g., -A WITH_AUTH,\n\
-A 'FLT_ACC=1', -A 'DEFVAL=\"str-val\"')\n\
-b nr Maximum OS UDP receive buffer size which will not be exceeded by\n\
@@ -546,7 +546,7 @@ char *sr_memmng_shm = NULL;
static int *_sr_instance_started = NULL;
int ksr_cfg_print_mode = 0;
-int ksr_atexit_mode = 1;
+int ksr_atexit_mode = 0;
int ksr_wait_worker1_mode = 0;
int ksr_wait_worker1_time = 4000000;
**crypto_uuid.c**
```
CC (gcc) [M crypto.so] api.o
CC (gcc) [M crypto.so] crypto_aes.o
CC (gcc) [M crypto.so] crypto_evcb.o
CC (gcc) [M crypto.so] crypto_mod.o
CC (gcc) [M crypto.so] crypto_uuid.o
crypto_uuid.c: In function 'crypto_generate_callid':
crypto_uuid.c:184:9: warning: 'SHA1_Init' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
184 | SHA1_Init(&crypto_ctx);
| ^~~~~~~~~
In file included from crypto_uuid.c:37:
/usr/include/openssl/sha.h:49:27: note: declared here
49 | OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c);
| ^~~~~~~~~
crypto_uuid.c:185:9: warning: 'SHA1_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
185 | SHA1_Update(&crypto_ctx, crypto_callid_seed, SEED_LEN);
| ^~~~~~~~~~~
In file included from crypto_uuid.c:37:
/usr/include/openssl/sha.h:50:27: note: declared here
50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
| ^~~~~~~~~~~
crypto_uuid.c:186:9: warning: 'SHA1_Update' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
186 | SHA1_Update(&crypto_ctx, crypto_callid_counter, CTR_LEN);
| ^~~~~~~~~~~
In file included from crypto_uuid.c:37:
/usr/include/openssl/sha.h:50:27: note: declared here
50 | OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
| ^~~~~~~~~~~
crypto_uuid.c:187:9: warning: 'SHA1_Final' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
187 | SHA1_Final(crypto_buf, &crypto_ctx);
| ^~~~~~~~~~
In file included from crypto_uuid.c:37:
/usr/include/openssl/sha.h:51:27: note: declared here
51 | OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c);
| ^~~~~~~~~~
LD (gcc) [M crypto.so] crypto.so
CC (gcc) [M tls.so] tls_bio.o
```
**auth_crypt.c**
```
CC (gcc) [M tls.so] tls_verify.o
LD (gcc) [M tls.so] tls.so
CC (gcc) [M auth_identity.so] auth_crypt.o
auth_crypt.c: In function 'rsa_sha1_enc':
auth_crypt.c:214:9: warning: 'RSA_sign' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
214 | if(RSA_sign(NID_sha1, sstrcrypted, sizeof sstrcrypted,
| ^~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/pem.h:23,
from auth_crypt.c:33:
/usr/include/openssl/rsa.h:356:27: note: declared here
356 | OSSL_DEPRECATEDIN_3_0 int RSA_sign(int type, const unsigned char *m,
| ^~~~~~~~
auth_crypt.c: In function 'rsa_sha1_dec':
auth_crypt.c:258:9: warning: 'EVP_PKEY_get1_RSA' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
258 | hpubkey = EVP_PKEY_get1_RSA(pkey);
| ^~~~~~~
In file included from /usr/include/openssl/pem.h:22,
from auth_crypt.c:33:
/usr/include/openssl/evp.h:1359:16: note: declared here
1359 | struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey);
| ^~~~~~~~~~~~~~~~~
auth_crypt.c:266:9: warning: 'RSA_verify' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
266 | if(RSA_verify(NID_sha1, (unsigned char *)ssha, sshasize,
| ^~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/pem.h:23,
from auth_crypt.c:33:
/usr/include/openssl/rsa.h:359:27: note: declared here
359 | OSSL_DEPRECATEDIN_3_0 int RSA_verify(int type, const unsigned char *m,
| ^~~~~~~~~~
auth_crypt.c:273:17: warning: 'RSA_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
273 | RSA_free(hpubkey);
| ^~~~~~~~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/pem.h:23,
from auth_crypt.c:33:
/usr/include/openssl/rsa.h:301:28: note: declared here
301 | OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r);
| ^~~~~~~~
auth_crypt.c:298:9: warning: 'RSA_free' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
298 | RSA_free(hpubkey);
| ^~~~~~~~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/pem.h:23,
from auth_crypt.c:33:
/usr/include/openssl/rsa.h:301:28: note: declared here
301 | OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r);
| ^~~~~~~~
CC (gcc) [M auth_identity.so] auth_dynstr.o
CC (gcc) [M auth_identity.so] auth_hdrs.o
```
**auth_identity.c**
```
CC (gcc) [M auth_identity.so] auth_http.o
CC (gcc) [M auth_identity.so] auth_identity.o
auth_identity.c: In function 'mod_init':
auth_identity.c:414:9: warning: 'PEM_read_RSAPrivateKey' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
414 | glb_hmyprivkey = PEM_read_RSAPrivateKey(hpemfile, NULL, NULL, NULL);
| ^~~~~~~~~~~~~~
In file included from auth_identity.c:43:
/usr/include/openssl/pem.h:447:1: note: declared here
447 | DECLARE_PEM_rw_cb_attr(OSSL_DEPRECATEDIN_3_0, RSAPrivateKey, RSA)
| ^~~~~~~~~~~~~~~~~~~~~~
auth_identity.c:425:9: warning: 'RSA_size' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
425 | if(initdynstr(&glb_encedmsg, RSA_size(glb_hmyprivkey)))
| ^~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/pem.h:23,
from auth_identity.c:43:
/usr/include/openssl/rsa.h:212:27: note: declared here
212 | OSSL_DEPRECATEDIN_3_0 int RSA_size(const RSA *rsa);
| ^~~~~~~~
auth_identity.c:429:9: warning: 'RSA_size' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
429 | if(initdynstr(&glb_b64encedmsg, (RSA_size(glb_hmyprivkey) / 3 + 1) * 4))
| ^~
In file included from /usr/include/openssl/x509.h:36,
from /usr/include/openssl/pem.h:23,
from auth_identity.c:43:
/usr/include/openssl/rsa.h:212:27: note: declared here
212 | OSSL_DEPRECATEDIN_3_0 int RSA_size(const RSA *rsa);
| ^~~~~~~~
CC (gcc) [M auth_identity.so] auth_tables.o
LD (gcc) [M auth_identity.so] auth_identity.so
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3502
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3502(a)github.com>
I have a scenario on wich requires sequential fork (up to 30 possible destinations) with different
Call-ID for each leg. I am using topoh module enabled, but it always puts the same Call-ID.
I think a possible solution would be to modify the callid prefix parameter of
topoh module.
Instead of storing a string, it could store the name of a variable that could then have
its content changed within the script. So within the "branch_route" I could modify
this variable by putting $tU ( To URI Username of the outgoing Invite).
In this case the new Call-ID generated by topoh module would be a function of the
"To URI Username" that is different for each leg.
Is this proposal technically feasible or is there a different solution for this scenario?
Additional information:
kamailio Version - output of kamailio -v
version: kamailio 5.7.1 (x86_64/linux) 4238e4
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_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 4238e4
compiled on 13:26:58 Jun 28 2023 with gcc 8.5.0
Operating System: CentOS Linux 8
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-348.7.1.el8_5.x86_64
Architecture: x86-64
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3630
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3630(a)github.com>
NAME variable might be set to the current HOSTNAME in some shell and also clash with the value set by the module calling MOD_INSTALL_UTILS by passing a NAME variable.
With commit 1774cee62098 ("kamcmd: allow defining the name of the application from command line") this resulted in the kamcmd bin being renamed to all kind of name from hostname to ctl.so.
Fix this by checking the variable to a more safe name that is not already defined in shell by default and also that doesn't clash with module variables, use UTIL_NAME as an alternative to NAME.
UTIL_NAME now needs to be used to create kamcmd with custom name.
Fixes: 1774cee62098 ("kamcmd: allow defining the name of the application from command line")
<!-- 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 -->
- [ ] Commit message has the format required by CONTRIBUTING guide
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] Each component has a single commit (if not, squash them into one commit)
- [ ] No commits to README files for modules (changes must be done to docbook files
in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3628
-- Commit Summary --
* kamcmd: don't clash with ENV NAME or ctl.so module
-- File Changes --
M utils/kamcmd/Makefile (9)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3628.patchhttps://github.com/kamailio/kamailio/pull/3628.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3628
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3628(a)github.com>
Module: kamailio
Branch: master
Commit: b141f267ce1fe1068de1541d8bd5b5dc53c1d6d9
URL: https://github.com/kamailio/kamailio/commit/b141f267ce1fe1068de1541d8bd5b5d…
Author: Christian Marangi <ansuelsmth(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2023-11-06T16:13:55+01:00
kamcmd: Makefile - use CUSTOM_NAME for specifying custom binary name
- previous use of NAME can clash with environment variable NAME that
could be set by OS or by Kamailio modules installation
- GH #3628
---
Modified: utils/kamcmd/Makefile
---
Diff: https://github.com/kamailio/kamailio/commit/b141f267ce1fe1068de1541d8bd5b5d…
Patch: https://github.com/kamailio/kamailio/commit/b141f267ce1fe1068de1541d8bd5b5d…
---
diff --git a/utils/kamcmd/Makefile b/utils/kamcmd/Makefile
index 1fd923d8554..c8298a8662c 100644
--- a/utils/kamcmd/Makefile
+++ b/utils/kamcmd/Makefile
@@ -8,10 +8,15 @@ include $(COREPATH)/Makefile.targets
auto_gen=
RELEASE=1.5
UTIL_SRC_NAME=kamcmd
+# Pass CUSTOM_NAME to overwrite the kamcmd/sercmd bin name
+ifeq ($(CUSTOM_NAME),)
ifeq ($(FLAVOUR),ser)
- NAME?=sercmd
+ NAME=sercmd
else
- NAME?=kamcmd
+ NAME=kamcmd
+endif
+else
+ NAME=$(CUSTOM_NAME)
endif
readline_localpath=$(LOCALBASE)/include/readline/readline.h
- realtime and shutdown mode support
- removed duplicate entry in doc about "ro_auth_expiry"
- RO_TABLE_VERSION constant did not match inserted value in db schema
<!-- 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)
- [ ] 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
Fixed the module so it also use information written to database to restore Ro sessions on startup/restart.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3622
-- Commit Summary --
* ims_charging: Implemented restore of Ro sessions from database
-- File Changes --
M src/modules/ims_charging/dialog.c (6)
M src/modules/ims_charging/doc/ims_charging_admin.xml (21)
M src/modules/ims_charging/ims_charging_mod.c (15)
M src/modules/ims_charging/ims_ro.c (2)
M src/modules/ims_charging/ro_db_handler.c (444)
M src/modules/ims_charging/ro_db_handler.h (11)
M src/modules/ims_charging/ro_timer.c (2)
M utils/kamctl/mysql/ims_charging-create.sql (8)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3622.patchhttps://github.com/kamailio/kamailio/pull/3622.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3622
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3622(a)github.com>