Is it intended to jump to `error` instead of `parse_error` now? @pantelisk98 @henningw
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/01e82b38c41d344c1e94b2e0f574981…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/01e82b38c41d344c1e94b2e0f574981ef0ce4318/105530322(a)github.com>
### Description
We have faced an issue which appears when TOPOH module is enabled, call is made from WebRTC client, then transferred by callee.
#### Scenario
WebRTC client behind load balancer makes call to softphone, call from softphone is transferred to external number using Asterisk.
#### Expected result
When call is hanged up on external number side, call should be hanged up on WebRTC client side.
#### Actual result
When call is hanged up on external number side, call is not hanged up on WebRTC client side.
### Troubleshooting
#### Legend
10.5.0.145 - load balancer
10.128.150.67 - WebRTC client
10.181.0.1 - kamailio
10.5.2.192 - asterisk
#### Log Messages
On transfer:
https://pastebin.com/H3FQ4Kpj
On hangup from external number side:
https://pastebin.com/wgfRzGbd
On hangup from WebRTC client side:
https://pastebin.com/sE0yhBae
#### SIP Traffic
Faulty case with TOPOH module enabled:
[topoh_on.csv](https://github.com/kamailio/kamailio/files/11028205/topoh_on.…
Normal behavior with TOPOH module disabled:
[topoh_off.csv](https://github.com/kamailio/kamailio/files/11028206/topoh_of…
#### Config files
kamailio.cfg:
[kamailio.txt](https://github.com/kamailio/kamailio/files/11028283/kamailio.…
kamailio-local.cfg enabled toggles:
#!define WITH_MYSQL
#!define WITH_AUTH
#!define WITH_USRLOCDB
#!define WITH_DISPATCHER
#!define WITH_HOMER
#!define WITH_PSTN
#!define WITH_TOPOH
#!define WITH_CUSTOM_HEADERS
#!define WITH_PROM
#!define WITH_DMQ
#!define WITH_NAT
#!define WITH_XXXX_HEADERS
#!define WITH_TLS
#!define WITH_WEBSOCKET
#!define WITH_VOIP_AUTH
#!define WITH_ADVERTISE
#!define WITH_JSONRPC
#!define WITH_TCP
#!define WITH_DIALOG
#!define WITH_DIFF_PROVIDER_SRC_IP
#!define WITH_UAC
#!define WITH_DEV
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.6.1 (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, 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: unknown
compiled on 09:11:15 Nov 15 2022 with gcc 9.3.0
```
* **Operating System**:
```
dockerized kamailio running on Ubuntu 16.04.3 LTS
Docker version 18.03.1-ce, build 9ee9f40
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3398
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3398(a)github.com>
Hi Kamailio,
We have noticed that a request not belonging to a dialog (e.g. a SIP MESSAGE) missing the tag= parameter in the from: header will trigger an ERROR: message like.
````
Mar 21 14:40:23 ip-10-85-164-143 /usr/sbin/kamailio[172]: ERROR: dialog [dlg_handlers.c:726]: pre_match_parse(): failed to get From header
````
````
Mar 21 14:42:31 ip-10-85-165-13 /usr/sbin/kamailio[183]: ERROR: tmx [tmx_pretran.c:227]: tmx_check_pretran(): failed to get From header
````
According to our interpretation of 3261 section 12.1.1
````
"A UAS MUST be prepared to receive a
request without a tag in the From field, in which case the tag is
considered to have a value of null."
````
this should not be the case. Also the BNF states no from: tag: is mandatory
```
From = ( "From" / "f" ) HCOLON from-spec
from-spec = ( name-addr / addr-spec )
*( SEMI from-param )
from-param = tag-param / generic-param
tag-param = "tag" EQUAL token
```
We believe this to be implemented in at least two places where one example is in the `dlg_handler` where `pre_match_parse` check
```
if (parse_from_header(req) < 0 || get_from(req)->tag_value.len == 0) {
LM_ERR("failed to get From header\n");
return -1;
}
```
As our interpretation of the standard is that the from: tag is not mandatory, hence we can't require our customer to change their behaviour, we consider this as a bug.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3399
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3399(a)github.com>
Module: kamailio
Branch: master
Commit: 9cc9a177daf6d5ce11fbdef714bd576716dc5a2f
URL: https://github.com/kamailio/kamailio/commit/9cc9a177daf6d5ce11fbdef714bd576…
Author: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Committer: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Date: 2023-03-20T16:56:03+01:00
p_usrloc: use PRIu64 macro to find out what format is needed for uint64_t since it depends on architecture
---
Modified: src/modules/p_usrloc/ul_check.c
---
Diff: https://github.com/kamailio/kamailio/commit/9cc9a177daf6d5ce11fbdef714bd576…
Patch: https://github.com/kamailio/kamailio/commit/9cc9a177daf6d5ce11fbdef714bd576…
---
diff --git a/src/modules/p_usrloc/ul_check.c b/src/modules/p_usrloc/ul_check.c
index dfc062f266..0ed32dc99f 100644
--- a/src/modules/p_usrloc/ul_check.c
+++ b/src/modules/p_usrloc/ul_check.c
@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <inttypes.h>
#include <stdint.h>
#include "../../core/mem/shm_mem.h"
@@ -136,7 +137,7 @@ int must_retry(time_t *timer, time_t interval){
if(!timer){
return -1;
}
- LM_DBG("must_retry: time is at %llu, retry at %llu.\n", (uint64_t)time(NULL),
+ LM_DBG("must_retry: time is at %" PRIu64 ", retry at %" PRIu64 ".\n", (uint64_t)time(NULL),
(uint64_t)(*timer));
if(*timer <= time(NULL)){
*timer = time(NULL) + interval;
Module: kamailio
Branch: master
Commit: 135f7b5e2114617b0bc408175ec146d248d01d3a
URL: https://github.com/kamailio/kamailio/commit/135f7b5e2114617b0bc408175ec146d…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2023-03-20T11:01:25+01:00
modules: readme files regenerated - ims_registrar_pcscf ... [skip ci]
---
Modified: src/modules/ims_registrar_pcscf/README
---
Diff: https://github.com/kamailio/kamailio/commit/135f7b5e2114617b0bc408175ec146d…
Patch: https://github.com/kamailio/kamailio/commit/135f7b5e2114617b0bc408175ec146d…
---
diff --git a/src/modules/ims_registrar_pcscf/README b/src/modules/ims_registrar_pcscf/README
index 3bfb0e6003..02327a005c 100644
--- a/src/modules/ims_registrar_pcscf/README
+++ b/src/modules/ims_registrar_pcscf/README
@@ -312,6 +312,33 @@ pcscf_save("location");
* domain - Logical domain within the registrar. If a database is used
then this must be name of the table which stores the contacts.
+ The return code may have the following values:
+ * ( 1) OK
+ * (-1) Parsing of contact data failed
+ * (-2) Deregistration in progress
+
+ For db_mode = DB_ONLY (3) setting for ims_usrloc_pcscf module modparam
+ following logic is implemented:
+ * To avoid race time conditions between a REREGISTER and the expiry
+ handler state machine in the scscf an approach is chosen to refuse
+ a REREGISTER in time window of 20 seconds after pcontact expiry on
+ the pcscf (thus allowing expiry handling to finish). REREGISTER is
+ refused in this scenario with return code -2.
+ * In case a REREGISTER arrives at pcscf and the respective pcontact
+ is expired longer than time window of 20 seconds registration also
+ is refused with return code -2 and additionaly PUBLISH is sent to
+ scscf with expiry = 0.
+ * The rc -2 shall be handled in register.cfg script as follows:
+ pcscf_save_pending("location");
+ switch ($retcode) {
+ case -1:
+ .......
+ case -2:
+ send_reply("500", "Deregister in progress - Please try again");
+ exit;
+ break;
+ }
+
4.3. pcscf_follows_service_routes(domain)
Returns true, if the request is following the "learned" service-routes
Module: kamailio
Branch: master
Commit: 38d72c3f8248b32b3ba0ff24abd1f2f7407f9d8f
URL: https://github.com/kamailio/kamailio/commit/38d72c3f8248b32b3ba0ff24abd1f2f…
Author: Annemarie Mandl <mandl(a)rpmbld.novalocal>
Committer: Henning Westerholt <hw(a)gilawa.com>
Date: 2023-03-20T10:57:21+01:00
ims_registrar_pcscf: changes for ul db_mode DB_ONLY
Enable registration of pcscf contact callback during download
from db location table and inserting pcontact (normally this
callback is registered during handling of REGISTER).
Refuse REGISTER when pcontact is expired since [0 to 20] seconds.
Within this time window a NOTIFY is expected from scscf and in order
to avoid race time conditions between scscf and pcscf REGISTER
will be refused. Refuse REGISTER when pcontact is expired longer
than 20 seconds - send PUBLISH (contact expired) to scscf to trigger
NOTIFY. In both REGISTER refused scenarios routing script should reply
500 - Deregistration in progress.
undo changes in ul_callback.c & ul_callback.h
corrections after comments from Henning
---
Modified: src/modules/ims_registrar_pcscf/doc/ims_registrar_pcscf_admin.xml
Modified: src/modules/ims_registrar_pcscf/ims_registrar_pcscf_mod.c
Modified: src/modules/ims_registrar_pcscf/notify.c
Modified: src/modules/ims_registrar_pcscf/save.c
---
Diff: https://github.com/kamailio/kamailio/commit/38d72c3f8248b32b3ba0ff24abd1f2f…
Patch: https://github.com/kamailio/kamailio/commit/38d72c3f8248b32b3ba0ff24abd1f2f…
Enable registration of pcscf contact callback during download from db location table and inserting pcontact (normally this callback is registered during handling of REGISTER). Refuse REGISTER when pcontact is expired since [0 to 20] seconds. Within this time window a NOTIFY is expected from scscf and in order to avoid race time conditions between scscf and pcscf REGISTER will be refused. Refuse REGISTER when pcontact is expired longer than 20 seconds - send PUBLISH (contact expired) to scscf to trigger NOTIFY. In both REGISTER refused scenarios routing script should reply 500 - Deregister in progress.
<!-- 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
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
In case a pcontact found in location db has to be inserted into pcscf cache depending on contact state also callbacks have to be registered for this pcontact. Registering of callback_pcscf_contact_cb is enabled in this module.
Handling of contact expiry is usually triggered in the scscf (mem_timer_udomain which runs every 10 secs). Sending of NOTIFY to pcscf may take up to 20 seconds from start of expiry due to timing conditions.
To avoid race time conditions between a REREGISTER and the expiry handler state machine in the scscf an approach is chosen to refuse a REREGISTER in time window of 20 seconds after pcontact expiry on the pcscf (thus allowing expiry handling to finish). REREGISTER is refused in this scenario with new return_code -2.
In case a REREGISTER arrives at pcscf and the respective pcontact is expired longer than time window of 20 seconds registration also is refused with rc -2 and additionaly PUBLISH is sent to scscf with expiry = 0.
The rc -2 shall be handled in register.cfg script as follows:
pcscf_save_pending("location");
switch ($retcode) {
case -1:
# Missing/wrong Information in REGISTER.
send_reply("400", "Information wrong - See log.");
exit;
break;
case -2:
# De-Register in Progress, or PUBLISH ongoing due to registration expiry,
# or new REGISTER blocked because registration just expired (up to 20sec).
append_to_reply("Retry-After: 30\r\n");
send_reply("500", "Deregister in progress - Please try again");
exit;
break;
}
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3317
-- Commit Summary --
* ims_registrar_pcscf: changes for ul db_mode DB_ONLY
-- File Changes --
M src/modules/ims_registrar_pcscf/ims_registrar_pcscf_mod.c (21)
M src/modules/ims_registrar_pcscf/notify.c (4)
M src/modules/ims_registrar_pcscf/save.c (37)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3317.patchhttps://github.com/kamailio/kamailio/pull/3317.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3317
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3317(a)github.com>
Hi,
Quick question:
Looking at the Dialog module and CSeq tracking functionality, I've noticed
the following:
- on the one hand, we are storing the current CSeq for each direction in
the Dialog structure
- on the other hand, we are storing a "Delta" of the received vs. updated
CSeq as a Dialog Variable
Does replacing the Delta with the CSeq already stored with the Dialog
structure make sense?
I am asking because of my latest changes, where there may be more sources
for an updated CSeq (e.g., when sending a Request from script within the
Dialog) and more use cases for an updated CSeq (Up and Downstream).
I've updated the dialog module for my use already accordingly
https://github.com/kamailio/kamailio/compare/master...carstenbock/dialog_cs…
I wanted to hear other opinions and possible pitfalls as well...
Thanks,
Carsten
--
Carsten Bock I CTO & Founder
ng-voice GmbH
Trostbrücke 1 I 20457 Hamburg I Germany
T +49 179 2021244 I www.ng-voice.com
Registry Office at Local Court Hamburg, HRB 120189
Managing Directors: Dr. David Bachmann, Carsten Bock
@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.
Hello,
Kamailio SIP Server v5.5.6 stable release is out.
This is a maintenance release of the stable branch 5.5 that
includes fixes since the release of v5.5.5. There is no change to
database schema or configuration language structure that you have to do
on previous installations of v5.5.x. Deployments running previous v5.5.x
versions are strongly recommended to be upgraded to v5.5.6.
Note that 5.5 is the second last stable branch, still officially maintained
by Kamailio development team. The latest stable branch is 5.6, with
v5.6.4 being release out of it.
For more details about version 5.5.6 (including links and guidelines to
download the tarball or from GIT repository), visit:
 * https://www.kamailio.org/w/2023/03/kamailio-v5-5-6-released/
RPM, Debian/Ubuntu packages will be available soon as well.
Many thanks to all contributing and using Kamailio!
Cheers,
Daniel
--
Daniel-Constantin Mierla -- www.asipto.comwww.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio World Conference - June 5-7, 2023 - www.kamailioworld.com
Kamailio Advanced Training - Online - March 27-30, 2023 - www.asipto.com