@rfuchs Thanks! Pushed the PRIu64 macro versions
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/6e032019d992625abc2a3739423df9e…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/6e032019d992625abc2a3739423df9ea1c964356/104410654(a)github.com>
Eh, these are arch dependent. "long int" on 32-bit platforms is only 32 bits.
Either use %llu and cast to "long long" or use the PRIu64 macro.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/6e032019d992625abc2a3739423df9e…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/6e032019d992625abc2a3739423df9ea1c964356/104404760(a)github.com>
### Description
I am in need to get some statistic counters related to each lcr gw currently loaded in Kamailio.
Kamailio already provides the counters I need inside the KEX module with the following command:
```
kamcmd> stats.get_statistics core:
core:bad_URIs_rcvd = 69
core:bad_msg_hdr = 2
core:drop_replies = 0
core:drop_requests = 8499
core:err_replies = 0
core:err_requests = 0
core:fwd_replies = 4
core:fwd_requests = 65
core:rcv_replies = 502088
...
```
Here kamailio doing exactly what i want, it's exposing the counter data via xmlrpc which is great for attaching an external tool to build statistics.
Unfortunately Kamailio KEX module is counting every single request/reply hitting the proxy server, the idea is to have the above stats related to the gateways currently loaded by the lcr module.
In this way, for example I can tell how many request/replies I got from gw id X or gw id Y and produce gw based stats.
Unfortunately the KEX module has no "concept" of "GW" and "LCR", so the idea is to implement the same counting logic inside LCR module.
The counting should not be persistent (counters must go to zero every time kamailio restarts).
When adding or deleting a new gateway, the counting in memory must reflect the status of the internal state or lcr gatewas, so, for example, after adding a new gateway and reloading lcr tables, the new counters must be immediately available through xmlrpc without a new kamailio restart. The same concept applies when the gateway is removed from the list.
### Expected behavior
A possible implementation should give the user to query counters in a way similar to this:
```
# kamcmd lcr.stats
{
gw: {
{
gw_id: <id of lcr mysql table here>
gw_name: <description of lcr mysql table here>
requests: 0
requests_invite: 0
requests_cancel: 0
...
}
{
gw_id: <id of lcr mysql table here>
gw_name: <description of lcr mysql table here>
requests: 0
requests_invite: 0
requests_cancel: 0
...
}
}
}
```
Additionally, it would be helpful to set a gw id as argument in order to filter, for example:
```
# kamcmd lcr.stats 95
{
gw: {
{
gw_id: 95
gw_name: <description of gw id 95>
requests: 222
requests_invite: 1
requests_cancel: 1
requests_ack: 1
...
}
}
}
```
#### Actual observed behavior
To my knowledge, nothing related to this issue has been implemented in Kamailio so far
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3372
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3372(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
- [ ] Small bug fix (non-breaking change which fixes an issue)
- [x] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [x] Tested changes locally
- [x] Related to issue #3372
#### Description
Implementing the suggesting lcr counters per gateway
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3391
-- Commit Summary --
* lcr: add counters per gateway
-- File Changes --
M src/modules/lcr/lcr_mod.c (306)
M src/modules/lcr/lcr_mod.h (52)
M src/modules/lcr/lcr_rpc.c (460)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3391.patchhttps://github.com/kamailio/kamailio/pull/3391.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3391
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3391(a)github.com>
From https://kamailio.sipwise.com/job/kamailiodev-nightly-binaries/architecture=…
```
nat_traversal.c: In function 'get_register_expire':
../../core/parser/../dprint.h:321:73: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 11 has type 'long unsigned int' [-Wformat=]
321 | fprintf(stderr, "%2d(%d) %s: %.*s%s%s%s" fmt, \
| ^~~~~~~~~~~~~~~~~~~~~~~~
../../core/parser/../dprint.h:345:25: note: in expansion of macro 'LOG_FX'
345 | LOG_FX(facility, level, lname, prefix, _FUNC_NAME_, fmt, ## args)
| ^~~~~~
../../core/parser/../dprint.h:351:25: note: in expansion of macro 'LOG_FL'
351 | LOG_FL(facility, level, NULL, prefix, fmt, ## args)
| ^~~~~~
../../core/parser/../dprint.h:354:25: note: in expansion of macro 'LOG_FP'
354 | LOG_FP(DEFAULT_FACILITY, (level), LOC_INFO, fmt, ## args)
| ^~~~~~
../../core/parser/../dprint.h:401:45: note: in expansion of macro 'LOG'
401 | # define DBG(fmt, args...) LOG(L_DBG, fmt , ## args)
| ^~~
../../core/parser/../dprint.h:405:36: note: in expansion of macro 'DBG'
405 | # define DEBUG(fmt, args...) DBG(fmt , ## args)
| ^~~
../../core/parser/../dprint.h:422:16: note: in expansion of macro 'DEBUG'
422 | #define LM_DBG DEBUG
| ^~~~~
nat_traversal.c:926:9: note: in expansion of macro 'LM_DBG'
926 | LM_DBG("maximum expire for all contacts: %llu\n", (uint64_t)expire);
| ^~~~~~
```
@miconda same here
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/f301ca9cdcc044dd05e9d82139e1db3…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/f301ca9cdcc044dd05e9d82139e1db368be6dc5c/104360216(a)github.com>
From https://kamailio.sipwise.com/job/kamailiodev-nightly-binaries/architecture=…
```
core/utils/tmrec.c: In function 'ac_print':
core/utils/tmrec.c:275:32: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int' [-Wformat=]
275 | printf("\nSys time: %llu\nTime: %02d:%02d:%02d\n", (uint64_t)_atp->time,
| ~~~^ ~~~~~~~~~~~~~~~~~~~~
| | |
| long long unsigned int long unsigned int
| %lu
core/utils/tmrec.c: In function 'tr_print':
core/utils/tmrec.c:515:30: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int' [-Wformat=]
515 | printf("Sys time: %llu\n", (uint64_t)_trp->dtstart);
| ~~~^ ~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | long unsigned int
| long long unsigned int
| %lu
core/utils/tmrec.c:521:30: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int' [-Wformat=]
521 | printf("End time: %llu\n", (uint64_t)_trp->dtend);
| ~~~^ ~~~~~~~~~~~~~~~~~~~~~
| | |
| | long unsigned int
| long long unsigned int
| %lu
core/utils/tmrec.c:522:30: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int' [-Wformat=]
522 | printf("Duration: %llu\n", (uint64_t)_trp->duration);
| ~~~^ ~~~~~~~~~~~~~~~~~~~~~~~~
| | |
| | long unsigned int
| long long unsigned int
| %lu
core/utils/tmrec.c:523:27: warning: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int' [-Wformat=]
523 | printf("Until: %llu\n", (uint64_t)_trp->until);
| ~~~^ ~~~~~~~~~~~~~~~~~~~~~
| | |
| | long unsigned int
| long long unsigned int
| %lu
```
@miconda it seems we need just ``%lu``
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/33b319353a097ba8fd80e45dc4f008c…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/33b319353a097ba8fd80e45dc4f008c2e9dfe813/104359936(a)github.com>
Hey @Guille0007
I cant recollect completely about the AAR fix I did. But, AAR works in the docker_open5gs repo for a call.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/1a1c2cf5dcea517a49438e8c29ecaab…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/1a1c2cf5dcea517a49438e8c29ecaab7b89b386a/104093331(a)github.com>
### Description
We've got a situation where we use t_send_reply() to generate early 100 Trying, before an operation that might have a small delay. The result of this operation might lead to a change which adds parameters to ruri-user. This works as expected for normal operations, but when calling ds_next_dst()/ds_next_domain() the change to $rU is lost.
### Troubleshooting
I then noticed that this is because t_send_reply() indirectly does a t_newtran() before change to $rU. If it's done in the opposite order, everything works as expected.
A workaround is to use for example sl_send_reply() and t_set_auto_inv_100(0), which works for me.
However, I'm unsure if this revert of user is expected behaviour?
#### Reproduction
$rU = $rU + ";npdi";
..
ds_select_dst(..);
then trigger a condition which executes failure_route and then use ds_next_dst() to fork serially.
$rU is then reverted to the original value in outgoing INVITE.
### Additional Information
Reproduced in master.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3388
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3388(a)github.com>
Hello Herlesupreth,
I am struggling with pcscf Rx.
At termination, PCSCF seems to request QoS for a flow between the IP/port of the SDP offer it receives and the IP/Port of the SDP Answer it receives.
While it should request QoS for a flow between the IP/Port of the SDP offer it generates (after rewriting SDP) and the IP/Port of the SDP answer it receives from B.
Is it why in the rtp.cfg from https://github.com/herlesupreeth/docker_open5gs you do not invoke rtpmanage on invite at termination?
Does the fix you posted there solve that?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/1a1c2cf5dcea517a49438e8c29ecaab…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/1a1c2cf5dcea517a49438e8c29ecaab7b89b386a/103929108(a)github.com>
Hello,
I am trying to use KEMI KSR.sanity in python but got error: AttributeError: module 'KSR' has no attribute 'sanity'
appreciate your help for solve this.
Thanks!
- proper way to work with shm pointer to secret list
<!-- 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, ...)
- [ ] 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
In case of adding secrets at runtime with autheph.add_secret rpc, authentication with new secrets not work,
this is because rpc process modify local pointer to secret list, instead shm.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3390
-- Commit Summary --
* auth_ephemeral: fix authentication with secrets added at runtime
-- File Changes --
M src/modules/auth_ephemeral/auth_ephemeral_mod.c (48)
M src/modules/auth_ephemeral/auth_ephemeral_mod.h (1)
M src/modules/auth_ephemeral/authorize.c (16)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3390.patchhttps://github.com/kamailio/kamailio/pull/3390.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3390
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3390(a)github.com>
Module: kamailio
Branch: master
Commit: e3b8b76d7a8773af4e10ce011682931429cd4a87
URL: https://github.com/kamailio/kamailio/commit/e3b8b76d7a8773af4e10ce011682931…
Author: Gustavo Almeida <gustavo.abcdef(a)hotmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2023-03-10T15:38:33+01:00
utils/kamctl: allow the definition of a specific startup file at start process
- Added the possibility to specify an alternative file different from the default: kamailio.cfg, when starting kamailio, using the kamctl tool.
This makes it possible to start kamailio by passing a startup file located in a specific folder (via ETCDIR env variable) and with a specific name, instead of using the default name: kamailio.cfg.
---
Modified: utils/kamctl/kamctl
Modified: utils/kamctl/kamctlrc
---
Diff: https://github.com/kamailio/kamailio/commit/e3b8b76d7a8773af4e10ce011682931…
Patch: https://github.com/kamailio/kamailio/commit/e3b8b76d7a8773af4e10ce011682931…
---
diff --git a/utils/kamctl/kamctl b/utils/kamctl/kamctl
index fbb237eb00..214cd21e5a 100755
--- a/utils/kamctl/kamctl
+++ b/utils/kamctl/kamctl
@@ -73,6 +73,10 @@ if [ -z "$MYLIBDIR" ] ; then
fi
fi
+if [ -z "$STARTUP_CONFIG_FILE" ]; then
+ STARTUP_CONFIG_FILE="kamailio.cfg"
+fi
+
##### ------------------------------------------------ #####
### load base functions
#
@@ -2007,9 +2011,9 @@ kamailio_start() {
exit 1
fi
if [ $SYSLOG = 1 ] ; then
- $KAMBIN -P $PID_FILE -f $ETCDIR/kamailio.cfg $STARTOPTIONS 1>/dev/null 2>/dev/null
+ $KAMBIN -P $PID_FILE -f $ETCDIR/$STARTUP_CONFIG_FILE $STARTOPTIONS 1>/dev/null 2>/dev/null
else
- $KAMBIN -P $PID_FILE -E -f $ETCDIR/kamailio.cfg $STARTOPTIONS
+ $KAMBIN -P $PID_FILE -E -f $ETCDIR/$STARTUP_CONFIG_FILE $STARTOPTIONS
fi
sleep 3
if [ ! -s $PID_FILE ] ; then
diff --git a/utils/kamctl/kamctlrc b/utils/kamctl/kamctlrc
index fe9cc1fc48..ce0bd9d93b 100644
--- a/utils/kamctl/kamctlrc
+++ b/utils/kamctl/kamctlrc
@@ -159,6 +159,10 @@
## PID file path - default is: /run/kamailio/kamailio.pid
# PID_FILE=/run/kamailio/kamailio.pid
+## Kamailio Startup Configuration File
+## Default is: kamailio.cfg
+# STARTUP_CONFIG_FILE=kamailio.cfg
+
## Extra start options - default is: not set
## example: start Kamailio with 64MB shared memory: STARTOPTIONS="-m 64"
# STARTOPTIONS=
<!-- 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
- [ ] 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 -->
- [x ] PR should be backported to stable branches
- [x ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
Added the possibility to specify an alternative file different from the default: `kamailio.cfg`, when starting `kamailio`, using the `kamctl` tool.
This makes it possible to start `kamailio` by passing a startup file located in a specific folder (via `ETCDIR` env variable) and with a specific name, instead of using the default name: `kamailio.cfg`.
Several local tests have been performed and it has been verified that it is now possible to perform the basic start/stop/restart operations of `kamailio` via `kamctl`, considering the use of a startup file other than the default: `kamailio.cfg`.
Example of `.kamctlrc` used:
```sh
ETCDIR="/etc/my-component/confs"
RPCFIFOPATH="/run/my-component/my-component_rpc.fifo"
PID_FILE="/run/my-component/my-component.pid"
STARTUP_CONFIG_FILE="starter.cfg"
STARTOPTIONS="-m 512 -M 64 -u user -g group"
```
Tested on `CentOS Linux release 7.9.2009 (Core)`.
I think this change will be interesting for many users.
Thanks
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3387
-- Commit Summary --
* utils/kamctl: allow the definition of a specific startup file at start process
-- File Changes --
M utils/kamctl/kamctl (8)
M utils/kamctl/kamctlrc (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3387.patchhttps://github.com/kamailio/kamailio/pull/3387.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3387
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3387(a)github.com>
Hello,
I'm interested in retrieving the reception time, in the UDP buffer, of the SIP packets handled by Kamailio.
I see there is a "struct timeval tval" in "struct sip_msg", but this is the timestamp of reading the packet by Kamailio, so not what I'm looking for.
According to the kernel documentation, this could be achieved using SO_TIMESTAMPNS on the socket:
https://www.kernel.org/doc/Documentation/networking/timestamping.txt
Do you think adding this feature to Kamailio could be useful ?
To implement this we would need, I think:
- Only buid this if SO_TIMESTAMPNS is supported (Linux >= 2.6.22)
- Add a configuration to enable / disable this feature
- Set the SO_TIMESTAMPNS flag when creating the socket
- Add a field in "struct sip_msg" to store the new timestamp
- When receiving a packet, read the ancillary data, extract the SO_TIMESTAMPNS information and store the timestamp in "struct sip_msg"
- Provide a new PV to make this accessible from Kamailio script
What do you think ?
Regards,
Nicolas.
This message contains information that may be privileged or confidential and is the property of the Capgemini Group. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message.