Sipwise hat ON:
We have more than one server and we need to keep things in db in order to share sca subscription/appearance between servers
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/781
<!--
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 -->
- [x] PR should be backported to stable branches
- [ ] Tested changes locally
#### Description
From https://github.com/kamailio/kamailio/pull/3569
After initial subscription by the SCA device, if we power off and on again, we won't get an unsubscribe notification and we are getting a new record-route with sca-subscription. In this case kamailio not updating the new record-route for the SCA Device.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3571
-- Commit Summary --
* sca: update rr if necessary for subscriptions
-- File Changes --
M src/modules/sca/sca_subscribe.c (11)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3571.patchhttps://github.com/kamailio/kamailio/pull/3571.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3571
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3571(a)github.com>
Module: kamailio
Branch: master
Commit: 145659f9b81a0d489548fa8a0f75c0bd05660e2e
URL: https://github.com/kamailio/kamailio/commit/145659f9b81a0d489548fa8a0f75c0b…
Author: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Committer: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Date: 2023-11-22T14:50:21+01:00
github: set ``expired`` label when closing PR or issues automatically [skip ci]
---
Modified: .github/workflows/issue_management.yml
---
Diff: https://github.com/kamailio/kamailio/commit/145659f9b81a0d489548fa8a0f75c0b…
Patch: https://github.com/kamailio/kamailio/commit/145659f9b81a0d489548fa8a0f75c0b…
---
diff --git a/.github/workflows/issue_management.yml b/.github/workflows/issue_management.yml
index 063df358c62..0d0b2ef9aa5 100644
--- a/.github/workflows/issue_management.yml
+++ b/.github/workflows/issue_management.yml
@@ -17,6 +17,8 @@ jobs:
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
+ close-issue-label: expired
+ close-pr-label: expired
exempt-issue-labels: bug
remove-stale-when-updated: true
operations-per-run: 500
<!-- 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
- [ ] Tested changes locally
- [X] Related to issue #3570
#### Description
<!-- Describe your changes in detail -->
Added optional AoR argument to ipsec_destroy(); to permit insertion of a real AoR from a cfg script. Otherwise, ipsec_destroy() uses the dummy AoR you(a)kamailio.org. The dummy AoR does not identify the IPSec SA of any UE present in the registrar, so no IPSec SA can be torn down.
The real AoR, if present as an argument to ipsec_destroy() replaces the dummy AoR in m->first_line.u.request.uri.s, before calling fill_contact() (see changes to cmd.c / cmd.h).
All other changes address ims_ipsec_pcscf_mod.c only, as required to implement the ipsec_destroy() optional argument.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3645
-- Commit Summary --
* Add AoR argument to ims_ipsec_pcscf ipsec_destroy()
-- File Changes --
M src/modules/ims_ipsec_pcscf/cmd.c (8)
M src/modules/ims_ipsec_pcscf/cmd.h (2)
M src/modules/ims_ipsec_pcscf/ims_ipsec_pcscf_mod.c (52)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3645.patchhttps://github.com/kamailio/kamailio/pull/3645.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3645
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3645(a)github.com>
Module: kamailio
Branch: master
Commit: e59c4415707f0995a0d5315b5601ae518b4f1ed5
URL: https://github.com/kamailio/kamailio/commit/e59c4415707f0995a0d5315b5601ae5…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2023-11-22T10:17:01+01:00
modules: readme files regenerated - ims_ipsec_pcscf ... [skip ci]
---
Modified: src/modules/ims_ipsec_pcscf/README
---
Diff: https://github.com/kamailio/kamailio/commit/e59c4415707f0995a0d5315b5601ae5…
Patch: https://github.com/kamailio/kamailio/commit/e59c4415707f0995a0d5315b5601ae5…
---
diff --git a/src/modules/ims_ipsec_pcscf/README b/src/modules/ims_ipsec_pcscf/README
index 81c0cb4cb99..f94669509f1 100644
--- a/src/modules/ims_ipsec_pcscf/README
+++ b/src/modules/ims_ipsec_pcscf/README
@@ -58,7 +58,7 @@ Tsvetomir Dimitrov
4.1. ipsec_create(domain)
4.2. ipsec_forward(domain, flags)
- 4.3. ipsec_destroy(domain)
+ 4.3. ipsec_destroy(domain [, aor])
List of Examples
@@ -103,7 +103,7 @@ Chapter 1. Admin Guide
4.1. ipsec_create(domain)
4.2. ipsec_forward(domain, flags)
- 4.3. ipsec_destroy(domain)
+ 4.3. ipsec_destroy(domain [, aor])
1. Overview
@@ -270,7 +270,7 @@ modparam("ims_ipsec_pcscf", "ipsec_preferred_ealg", "aes-cbc")
4.1. ipsec_create(domain)
4.2. ipsec_forward(domain, flags)
- 4.3. ipsec_destroy(domain)
+ 4.3. ipsec_destroy(domain [, aor])
4.1. ipsec_create(domain)
@@ -325,13 +325,15 @@ ipsec_forward("location");
ipsec_forward("location", "1");
...
-4.3. ipsec_destroy(domain)
+4.3. ipsec_destroy(domain [, aor])
The function destroys IPSec tunnel, created with ipsec_create.
Meaning of the parameters is as follows:
* domain - Logical domain within the registrar. If a database is used
then this must be name of the table which stores the contacts.
+ aor - SIP URI to match the record. If not provided, then R-URI is
+ used.
Example 1.13. ipsec_destroy
...
Module: kamailio
Branch: master
Commit: ef3f50db619490509f127eba87b75190a98a1b3e
URL: https://github.com/kamailio/kamailio/commit/ef3f50db619490509f127eba87b7519…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2023-11-22T10:09:16+01:00
ims_ipsec_pcscf: docs updated for ipsec_destroy()
---
Modified: src/modules/ims_ipsec_pcscf/doc/ims_ipsec_pcscf_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/ef3f50db619490509f127eba87b7519…
Patch: https://github.com/kamailio/kamailio/commit/ef3f50db619490509f127eba87b7519…
---
diff --git a/src/modules/ims_ipsec_pcscf/doc/ims_ipsec_pcscf_admin.xml b/src/modules/ims_ipsec_pcscf/doc/ims_ipsec_pcscf_admin.xml
index 982df9bbb14..d50c66ed45a 100644
--- a/src/modules/ims_ipsec_pcscf/doc/ims_ipsec_pcscf_admin.xml
+++ b/src/modules/ims_ipsec_pcscf/doc/ims_ipsec_pcscf_admin.xml
@@ -345,7 +345,7 @@ ipsec_forward("location", "1");
</section>
<section>
- <title><function moreinfo="none">ipsec_destroy(domain)</function></title>
+ <title><function moreinfo="none">ipsec_destroy(domain [, aor])</function></title>
<para>The function destroys IPSec tunnel, created with ipsec_create.</para>
<para>Meaning of the parameters is as follows:</para>
<itemizedlist>
@@ -355,6 +355,10 @@ ipsec_forward("location", "1");
If a database is used then this must be name of the table which
stores the contacts.
</para>
+ <para>
+ <emphasis>aor</emphasis> - SIP URI to match the record. If not
+ provided, then R-URI is used.
+ </para>
</listitem>
</itemizedlist>
<example>
Callback function might do an operation which creates a new transaction, which will result in a deadlock.
<!-- 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 -->
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [x] Related to issue #3641
#### Description
Problem in detail described in ticket.
Summary is that the lock used to iterate expired transactions is also needed when creating a new transaction.
If the callback function (directly or indirectly) do something that creates a new transaction, it will result in a deadlock.
In my case, this was the ims_charging module where a start charging request times out. The callback does t_continue() where the routing logic then rejects the call. This will create a stop request to the charging server, and it will block.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3643
-- Commit Summary --
* cdp: Avoid deadlock for callback on diameter timeout
-- File Changes --
M src/modules/cdp/transaction.c (35)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3643.patchhttps://github.com/kamailio/kamailio/pull/3643.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3643
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3643(a)github.com>
<!--
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.
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
I've been simulating calls while there's (faked) issues against the diameter server using TCP.
Ro_CCR() uses t_suspend() to suspend the SIP transaction while waiting for a response from the charging server.
A cdp transaction is also created with a callback to resume_on_initial_ccr() in the ims charging module.
When a response to a charging request is received, this is handled in cdp/api_process.c where cdp_take_trans() find the given transaction and returns it without a lock held. The callback is then executed, and everything is fine.
The problem occurs when a CCR times out, and the callback is done by the cdp_trans_timer() function. This hold a lock for the entire transaction list while executing callbacks for every timed out entry. In my case, the charging module does t_continue and the execution of that routing block is started again.
Here we reply a cause indicating it was an issue with the charging server. This will trigger a new callback from the ims_dialog module which again will try to start a new cdp transaction (CCR Stop) - still while the cdp_trans_timer function holds a lock.
Since the cdp timers now are blocked, no new connection attempts to the failed diameter server is done either.
### Troubleshooting
#### Reproduction
<!--
If the issue can be reproduced, describe how it can be done.
-->
```
Ro_CCR("RO_CONTINUE_DISPATCHER", "orig", 30, "", "")
this times out, and will do continue in the routing block specified (based on the cdp transaction timeout timer)
route[RO_CONTINUE_DISPATCHER] {
send_reply("500", "Internal error");
exit;
}
```
### 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.
-->
cdp_add_trans() on line 2 is blocked while waiting for lock held by cdp_trans_timer() on line 26 to be freed. The line numbers are a bit off because of some debugging.
```
#0 0x00007f6d9a3e0e29 in syscall () from /lib64/libc.so.6
#1 0x00007f6d979622f6 in futex_get (lock=0x7f6d706622a0) at ../../core/mem/../futexlock.h:121
#2 0x00007f6d979632cd in cdp_add_trans (msg=0x7f6d70921280, cb=0x7f6d9084caf5 <resume_on_termination_ccr>, ptr=0x0, timeout=5, auto_drop=1) at transaction.c:126
#3 0x00007f6d97980740 in AAASendMessage (message=0x7f6d70921280, callback_f=0x7f6d9084caf5 <resume_on_termination_ccr>, callback_param=0x0) at diameter_comm.c:158
#4 0x00007f6d9084c71b in send_ccr_stop_with_param (ro_session=0x7f6d70921dc0, code=0, reason=0x7ffe9b6cd400) at ims_ro.c:1183
#5 0x00007f6d90829f6d in dlg_terminated (dlg=0x7f6d7091f5d0, type=4, termcode=0, reason=0x7f6d9086f998 "call failed", _params=0x7f6d90d20280 <params>) at dialog.c:249
#6 0x00007f6d908216cd in dlg_callback_received (dlg=0x7f6d7091f5d0, type=4, _params=0x7f6d90d20280 <params>) at dialog.c:29
#7 0x00007f6d90aed1b9 in run_dlg_callbacks (type=4, dlg=0x7f6d7091f5d0, req=0x7f6d7091fb68, rpl=0xffffffffffffffff, dir=2, dlg_data=0x0) at dlg_cb.c:271
#8 0x00007f6d90abced4 in dlg_onreply (t=0x7f6d70931e10, type=1048576, param=0x7ffe9b6cda80) at dlg_handlers.c:1363
#9 0x00007f6d94252f2c in run_trans_callbacks_internal (cb_lst=0x7f6d70931eb8, type=1048576, trans=0x7f6d70931e10, params=0x7ffe9b6cda80) at t_hooks.c:236
#10 0x00007f6d942530e4 in run_trans_callbacks_with_buf (type=1048576, rbuf=0x7f6d70931f10, req=0x7f6d7091fb68, repl=0xffffffffffffffff, flags=0) at t_hooks.c:272
#11 0x00007f6d941d2860 in _reply_light (trans=0x7f6d70931e10, buf=0x7f6d97d10768 "SIP/2.0 480 Temporarily Unavailable\r\nVia: SIP/2.0/UDP 192.168.10.15:5060;branch=z9hG4bK427d31b9\r\nFrom: \"sipp\" <sip:+4749484948@192.168.10.15;user=phone>;tag=as22aa85b4\r\nTo: <sip:+4749494848@192.168.10.20"..., len=386, code=480, to_tag=0x7f6d944bb5e0 <tm_tags> "b239b52f382f2203913409401a079c72-9b859c73", to_tag_len=41, lock=0, bm=0x7ffe9b6ce5d0)
at t_reply.c:520
#12 0x00007f6d941d3e8e in _reply (trans=0x7f6d70931e10, p_msg=0x7f6d70946878, code=480, reason=0x7ffe9b6ce750, lock=0) at t_reply.c:689
#13 0x00007f6d941dfdcf in t_reply_str_unsafe (t=0x7f6d70931e10, p_msg=0x7f6d70946878, code=480, reason=0x7ffe9b6ce750) at t_reply.c:1753
#14 0x00007f6d941fd400 in ki_t_reply (msg=0x7f6d70946878, code=480, reason=0x7ffe9b6ce750) at tm.c:1538
#15 0x00007f6d941fdcee in w_t_reply_wrp (msg=0x7f6d70946878, code=480, txt=0x7f6d97d106e8 "Temporarily Unavailable") at tm.c:1598
#16 0x00007f6d93d24c0e in send_reply (msg=0x7f6d70946878, code=480, reason=0x7ffe9b6ce880) at sl.c:287
#17 0x00007f6d93d25728 in w_send_reply (msg=0x7f6d70946878, p1=0x7f6d97cee2e8 "x)\320\227m\177", p2=0x7f6d97cee388 "\350)\320\227m\177") at sl.c:329
#18 0x0000000000466fb3 in do_action (h=0x7ffe9b6cf9b0, a=0x7f6d97d025d8, msg=0x7f6d70946878) at core/action.c:1131
#19 0x0000000000474188 in run_actions (h=0x7ffe9b6cf9b0, a=0x7f6d97d02210, msg=0x7f6d70946878) at core/action.c:1618
#20 0x000000000047028d in do_action (h=0x7ffe9b6cf9b0, a=0x7f6d97d02f00, msg=0x7f6d70946878) at core/action.c:1241
#21 0x0000000000474188 in run_actions (h=0x7ffe9b6cf9b0, a=0x7f6d97cfdb68, msg=0x7f6d70946878) at core/action.c:1618
#22 0x00000000004748cc in run_top_route (a=0x7f6d97cfdb68, msg=0x7f6d70946878, c=0x0) at core/action.c:1701
#23 0x00007f6d9425802a in t_continue_helper (hash_index=39149, label=1245761144, rtact=0x7f6d97cfdb68, cbname=0x0, cbparam=0x0, skip_timer=1) at t_suspend.c:307
#24 0x00007f6d9425c6d8 in t_continue (hash_index=39149, label=1245761144, route=0x7f6d97cfdb68) at t_suspend.c:603
#25 0x00007f6d9085b372 in resume_on_initial_ccr (is_timeout=1, param=0x7f6d70921cc8, cca=0x0, elapsed_msecs=1) at ims_ro.c:1786
#26 0x00007f6d979646d1 in cdp_trans_timer (now=1699966590, ptr=0x0) at transaction.c:223
#27 0x00007f6d9798e3b0 in timer_loop () at timer.c:117
#28 0x00007f6d9798f639 in timer_process (returns=0) at timer.c:217
#29 0x00007f6d97942cf8 in diameter_peer_start (blocking=0) at diameter_peer.c:350
#30 0x00007f6d97932bb2 in cdp_child_init (rank=0) at cdp_mod.c:272
```
#### 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).
-->
```
```
#### 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).
-->
```
```
### Possible Solutions
I'm considering changing cdp_trans_timer() to iterate through the list, remove expired items while keeping them in a new list so all callbacks can be executed without the lock held.
Could also be fixed within the ims_charging module. For example by not sending a CCR-T when there's no answer to the CCR-I, but I feel that's more of a band aid rather than a real fix.
Any feedback or suggestions would be nice.
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
master
```
* **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`)
-->
```
centos 7.8
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3641
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3641(a)github.com>
Module: kamailio
Branch: master
Commit: e17b554ba918dc33c60f41c2cee50ad2578fbbd3
URL: https://github.com/kamailio/kamailio/commit/e17b554ba918dc33c60f41c2cee50ad…
Author: Morten Tryfoss <morten(a)tryfoss.no>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2023-11-22T09:36:44+01:00
ims_charging: Various changes to make module compatible to other charging servers
- Use origin-host of CCR response as destination-host of subsequent CCR requests,
to make sure those requests are routed to the same charging server (when using relay).
- use str_dup and str_free from ims_getters instead of locally defined.
- Honour AVP_Time_Quota_Threshold in CCR response, as an alternative to static configured
modparam "timer_buffer".
- Add new modparam "strip_plus_from_e164" to enable sending subscription id with correct
format according to specified type in the AVP.
- Moved subscription id formatting into a common function.
- Handle CCR response without AVP_Validity_Time set correctly. Was interpreted as
immediate expire.
- Handle IMS_RAR (Re-auth) request from charging server. Triggers an immediate interim
update if the session is alive.
- Handle IMS_ASR (Abort) request from charging server. Triggers an immediate termination
of the session/call.
- Fixed issue with signed/unsigned int related to check for Expires header.
cscf_get_expires_hdr() returns signed (-1 for not found), while that value was added
to the outgoing diameter request unsigned. That again resulted in an Expires AVP with
a really large value, and was rejected by the charging server.
---
Modified: src/modules/ims_charging/Ro_data.c
Modified: src/modules/ims_charging/Ro_data.h
Modified: src/modules/ims_charging/ccr.c
Modified: src/modules/ims_charging/config.h
Modified: src/modules/ims_charging/dialog.c
Modified: src/modules/ims_charging/doc/ims_charging_admin.xml
Modified: src/modules/ims_charging/ims_charging_mod.c
Modified: src/modules/ims_charging/ims_ro.c
Modified: src/modules/ims_charging/ims_ro.h
Modified: src/modules/ims_charging/ro_db_handler.c
Modified: src/modules/ims_charging/ro_db_handler.h
Modified: src/modules/ims_charging/ro_session_hash.c
Modified: src/modules/ims_charging/ro_session_hash.h
Modified: src/modules/ims_charging/ro_timer.c
Modified: utils/kamctl/mysql/ims_charging-create.sql
---
Diff: https://github.com/kamailio/kamailio/commit/e17b554ba918dc33c60f41c2cee50ad…
Patch: https://github.com/kamailio/kamailio/commit/e17b554ba918dc33c60f41c2cee50ad…
<!-- 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
**Use origin-host of CCR response as destination-host of subsequent CCR requests**
When connecting to a diameter node which using relay, it may load balance requests to multiple servers for handling. This change ensures that subsequent requests are sent to the same server.
**Honour AVP_Time_Quota_Threshold in CCR response**
Charging server indicates it want an interim update X number of seconds before all quota has been used.
**Add new modparam «strip_plus_from_e164»**
The existing formatitng routine check if it's a tel: or sip: uri, and sets E.164 or SIP according to that. If it's E.164, it strips "tel:" too. A subscription id with leading "+" is actually of type SIP.
I didn't want to make a breaking change here, so I introduced a new setting which fixes the behaviour.
**Moved subscription id formatting into a common function**
For more clean code, and one place to make further adjustments.
**Handle CCR response without AVP_Validity_Time**
If missing, various places in the module reported immediate expire.
**Handle IMS_RAR (Re-auth) request from charging server**
Typical scenario is that there's a missing interim update, and the server want to check if the session is still alive. At reception we try a lookup and if found, schedule a new request.
**Handle IMS_ASR (Abort) request from charging server**
Similar handling as for re-auth, but for server-initiated termination of the call.
**Fixed issue with signed/unsigned int related to check for Expires header**
cscf_get_expires_hdr() returns signed (-1 for not found), while that value was added
to the outgoing diameter request unsigned. That again resulted in an Expires AVP with
a really large value, and was rejected by the charging server.
Most probably cscf_get_expires_hdr() should be changed to return unsigned since the value theoretical can be that big, but since that is a common function for the ims modules it would require more testing than I'm capable of right now.
**Use str_dup() and str_free() from ims_getters instead of locally defined**
Those were needed more places.
--
I'm a little bit unsure about updating a string allocated in shm, where the length is changed (look in ims_ro.c, credit_control_session_callback()). Is the correct way to do a shm_free() and then reallocate, or is there a more simple way of doing it?
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3640
-- Commit Summary --
* cdp: Add support for re-auth on ro sessions initiated from charging server
* ims_charging: Various changes to make module compatible to other charging servers
-- File Changes --
M src/modules/cdp/acctstatemachine.c (2)
M src/modules/cdp/diameter_code_avp.h (2)
M src/modules/cdp/peerstatemachine.c (8)
M src/modules/cdp/session.c (2)
M src/modules/ims_charging/Ro_data.c (40)
M src/modules/ims_charging/Ro_data.h (5)
M src/modules/ims_charging/ccr.c (8)
M src/modules/ims_charging/config.h (1)
M src/modules/ims_charging/dialog.c (18)
M src/modules/ims_charging/doc/ims_charging_admin.xml (20)
M src/modules/ims_charging/ims_charging_mod.c (59)
M src/modules/ims_charging/ims_ro.c (234)
M src/modules/ims_charging/ims_ro.h (3)
M src/modules/ims_charging/ro_db_handler.c (43)
M src/modules/ims_charging/ro_db_handler.h (5)
M src/modules/ims_charging/ro_session_hash.c (45)
M src/modules/ims_charging/ro_session_hash.h (6)
M src/modules/ims_charging/ro_timer.c (8)
M utils/kamctl/mysql/ims_charging-create.sql (3)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3640.patchhttps://github.com/kamailio/kamailio/pull/3640.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3640
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3640(a)github.com>
### Description
I use debian 11 and Kamailio 5.6.x
modparam("htable", "htable", "callpush=>size=10;autoexpire=86400;dbtable=callpush;dbmode=1")
I can store the values in the table, but if I shutdown kamailio, the current values are not stored in the table.
#### Reproduction
Use a htable and dbtable and dbmode=1 and shutdown kamailio.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3536
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3536(a)github.com>
<!--
Kamailio Project uses GitHub Issues only for bugs in the code or feature requests. Please use this template only for feature requests.
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.
If you submit a feature request (or enhancement) add the description of what you would like to be added.
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
The current issue revolves around the absence of username support within the NDB REDIS KAMALIO framework when dealing with Redis, particularly concerning the Redis and Sentinel components. While Redis inherently offers the capability to utilize both usernames and passwords during authentication, this capability is not currently extended to the NDB REDIS KAMALIO setup.
As a result, when attempting to establish connections to Redis instances through NDB REDIS KAMALIO, there is no provision for providing a username as part of the authentication process. Instead, the framework only accommodates the usage of passwords for authentication. This stands in contrast to Redis, which permits the inclusion of both usernames and passwords for enhanced security measures.
Consequently, the limitation within NDB REDIS KAMALIO can hinder organizations seeking to ensure comprehensive security practices, especially when the requirement is to employ both usernames and passwords for authentication. This divergence between the authentication capabilities of Redis and NDB REDIS KAMALIO can potentially compromise security standards and hinder compatibility with certain authentication setups.
To address this issue, it would be essential for the development team behind NDB REDIS KAMALIO to enhance the framework's capabilities by incorporating support for username-based authentication in addition to passwords. This alignment with Redis's authentication model would ensure that organizations can confidently implement secure data interactions while maintaining consistency with established security policies
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Expected behavior
The expected behavior entails an improvement within the NDB REDIS KAMALIO framework to support both usernames and passwords for authentication when interacting with Redis instances, particularly in the Redis and Sentinel components. This enhancement would bring NDB REDIS KAMALIO in line with Redis's native authentication capabilities, where both usernames and passwords are accepted during the authentication process.
Upon implementing this improvement, users of NDB REDIS KAMALIO should be able to configure their connections by providing both a username and a password as part of the authentication details. This allows NDB REDIS KAMALIO to establish connections to Redis instances that require both authentication credentials, thereby enhancing security and ensuring compatibility with various authentication setups.
By incorporating support for usernames in addition to passwords, NDB REDIS KAMALIO can accommodate organizations that require comprehensive security measures, especially in scenarios where username-based authentication is mandated. This alignment with Redis's authentication model would enable organizations to effectively collect, manage, and interact with data while adhering to established security policies.
In summary, the expected behavior is that NDB REDIS KAMALIO should be upgraded to offer support for usernames and passwords during authentication, mirroring Redis's capabilities. This enhancement ensures a consistent and secure approach to data interactions and supports various authentication requirements within Redis environments
#### Actual observed behavior
The current actual behavior is that NDB REDIS KAMALIO does not have the capability to accept usernames as part of the authentication process when connecting to Redis instances, specifically in both the Redis and Sentinel components. While Redis itself allows for the usage of both usernames and passwords for authentication, this feature is not currently integrated into the NDB REDIS KAMALIO framework.
As a result, when configuring connections to Redis instances using NDB REDIS KAMALIO, there is no provision to include a username alongside the authentication details. The framework only accommodates the use of passwords for authentication purposes. This deviation from Redis's authentication model could lead to compatibility issues with certain authentication setups, particularly those that mandate the use of both usernames and passwords.
In essence, the actual behavior is that NDB REDIS KAMALIO falls short of aligning with Redis's authentication capabilities, thereby potentially hindering secure data interactions and limiting compatibility with certain security policies. Users attempting to adhere to comprehensive authentication practices may face challenges when utilizing NDB REDIS KAMALIO due to its inability to support usernames during authentication.
To address this actual behavior, it would be necessary to enhance NDB REDIS KAMALIO's capabilities to include support for both usernames and passwords during the authentication process. This enhancement would ensure that organizations can confidently utilize NDB REDIS KAMALIO while maintaining the security standards and authentication requirements necessary for their Redis environments.
#### Debugging Data
```
(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 improvement.
-->
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
(paste your output here)
```
* **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 `uname -a`)
-->
```
(paste your output here)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3552
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3552(a)github.com>
<!--
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.
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
Currently, kamailio NDB Redis integration with Sentinel does not offer support for password authentication, leading to potential security concerns in our system. As a result, we are unable to ensure the desired level of protection for sensitive data stored in Redis.
*Expected Behavior:*
We expect Kamailio to allow the configuration of password authentication for Sentinel in the NDB Redis integration, enabling a secure and password-protected connection to the Redis instances.
*Proposed Solution:*
To address this issue, we recommend implementing a feature that enables password authentication for the Sentinel-based NDB Redis connections. This improvement will provide an added layer of security, ensuring that only authorized users can access the Redis instances.
*Impact:*
The absence of password authentication support poses a security risk, making our system vulnerable to potential unauthorized access and data breaches. Implementing this enhancement will safeguard sensitive information and strengthen our Redis integration's security framework.
Note: as of now NDB REDIS support redis authentication using password
<!--
Explain what you did, what you expected to happen, and what actually happened.
-->
### Troubleshooting
#### Reproduction
Steps to Reproduce:*
1. Attempt to configure password authentication for Sentinel in kamailio NDB Redis integration.
ex:
modparam("ndb_redis", "server", "name=srvZ;sentinel_group=group_name;sentinel_master=1;sentinel=1.2.3.4:26379;sentinel=1.2.3.5:26379";pass=mypassword")
*It is failed to connect the sentinel *
<!--
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`
```
(paste your output here)
```
* **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`)
-->
```
(paste your output here)
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3530
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3530(a)github.com>
### Description
Newer rtpengine versions support manipulating SDP "a=" lines directly. Although kamailio is quite versatile when it comes to editing SIP message body, this functionality is often rather frail, especially when forking and having to use msg_apply_changes several times. I believe it would be beneficial to be able to offload such functionality to rtpengine, especially if one wants to apply different manipulations per outgoing branch.
### Expected behavior
There should be a way to issue rtpengine ng-control protocol commands compatible with the sdp-attr dictionary syntax.
#### Actual observed behavior
Currently sdp-attr tokens are not properly evaluated. For example, **doing**:
> rtpengine_manage("ICE=remove rtcp-mux-demux trust-address replace-origin replace-session-connection replace-SDP-version direction=internal direction=external sdp-attr-audio-substitute=$avp(fmtp_line) sdp-attr-audio-substitute=fmtp:101 0-15");
_[NOTE: $avp(fmtp_line) seems to expand in empty string here, which is a config error, but it doesn't affect the syntax demonstration in this example IMO]_
**results in**:
```
{
"supports": [ "load limit" ],
"sdp": "...",
"ICE": "remove",
"sdp-attr-audio-substitute": "",
"sdp-attr-audio-substitute": "fmtp:101",
"direction": [ "internal", "external" ],
"flags": [ "trust-address", "0-15" ],
"replace": [ "origin", "session-connection", "SDP-version" ],
"rtcp-mux": [ "demux" ],
"call-id": "...",
"received-from": [ "IP4", "..." ],
"from-tag": "...",
"to-tag": "...",
"command": "answer"
}
```
### Possible Solutions
Support the special syntax of sdp-attr as documented here: https://github.com/sipwise/rtpengine/blob/master/docs/ng_control_protocol.md
Here's one way to do it (I guess).
In order to get this:
```
"sdp-attr" :
{
"audio" :
{
"add" : [ "ptime:20", "sendrecv" ],
"substitute": [["fmtp:101 0-15" , "fmtp:126 0-16" ]]
},
"video":
{
"remove" : [ "rtpmap:101 telephone-event/8000" ]
},
"none" :
{
"substitute": [[ "sendrecv" , "sendonly" ], [ "ptime:20" , "ptime:40" ]]
}
}
```
Use a syntax similar to the following:
> rtpengine_manage("... sdp-attr-audio-add=ptime:20 sdp-attr-audio-add=sendrecv sdp-attr-audio-substitute=fmtp:101 0-15 sdp-attr-audio-substitute=fmtp:101 0-16 sdp-attr-video-remove=rtpmap:101 telephone-event/8000 sdp-attr-none-substitute=sendrecv sdp-attr-none-substitute=sendonly sdp-attr-none-substitute=ptime:20 sdp-attr-none-substitute=ptime:40 ...");
It's not very pretty, but it could work. Caveats:
* How to handle whitespace (e.g. there's a space in "fmtp:101 0-15" and in "rtpmap:101 telephone-event/8000" )
* substitute commands must always be in pairs, data type is a list of lists containing exactly two items as value in "substitute" key
Unfortunately my C skills are not up to this task, but if I can provide any other kind of help please let me know. Thanks!
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3509
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3509(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, ...)
- [ ] 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
This PR adds support for $hfl(Diversion)[] and $hflc(Diversion).
This parse_diversion.c was inspired by [parse_pai_ppi.c](https://github.com/kamailio/kamailio/blob/master/src/core/…. I am not sure if it's breaking the existing implementation and usage. I believe it does not.
During some experimentation with the hfl(name)[-1], I encountered weird behavior with negative indexing for the already supported headers like Via, Route, and Contact. -1 yields null and -2 yields the last one and so on. Separate PR can be introduced if necessary.
Any feedback is welcome.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3650
-- Commit Summary --
* parser: Extend diversion for multiple bodies
* pv: Add hfl and hflc support for Diversion header
-- File Changes --
M src/core/parser/parse_diversion.c (149)
M src/core/parser/parse_diversion.h (10)
M src/modules/pv/pv_core.c (175)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3650.patchhttps://github.com/kamailio/kamailio/pull/3650.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3650
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3650(a)github.com>
Module: kamailio
Branch: master
Commit: 650117ebc0a3e0369dd47015f7e96358515fedc9
URL: https://github.com/kamailio/kamailio/commit/650117ebc0a3e0369dd47015f7e9635…
Author: Kamailio Dev <kamailio.dev(a)kamailio.org>
Committer: Kamailio Dev <kamailio.dev(a)kamailio.org>
Date: 2023-11-21T11:32:12+01:00
modules: readme files regenerated - topos ... [skip ci]
---
Modified: src/modules/topos/README
---
Diff: https://github.com/kamailio/kamailio/commit/650117ebc0a3e0369dd47015f7e9635…
Patch: https://github.com/kamailio/kamailio/commit/650117ebc0a3e0369dd47015f7e9635…
---
diff --git a/src/modules/topos/README b/src/modules/topos/README
index ad13698a204..70af19ae47e 100644
--- a/src/modules/topos/README
+++ b/src/modules/topos/README
@@ -52,6 +52,7 @@ Frederic Gaisnon
3.19. methods_nocontact (str)
3.20. header_mode (int)
3.21. methods_noinitial (str)
+ 3.22. version_table (integer)
4. Functions
@@ -87,11 +88,12 @@ Frederic Gaisnon
1.19. Set methods_nocontact parameter
1.20. Set header_mode parameter
1.21. Set methods_noinitial parameter
- 1.22. tps_set_context usage
- 1.23. Usage of event_route[topos:msg-outgoing]
- 1.24. Usage of event_route[topos:msg-sending]
- 1.25. Usage of event_route[topos:msg-incoming]
- 1.26. Usage of event_route[topos:msg-receiving]
+ 1.22. version_table parameter usage
+ 1.23. tps_set_context usage
+ 1.24. Usage of event_route[topos:msg-outgoing]
+ 1.25. Usage of event_route[topos:msg-sending]
+ 1.26. Usage of event_route[topos:msg-incoming]
+ 1.27. Usage of event_route[topos:msg-receiving]
Chapter 1. Admin Guide
@@ -126,6 +128,7 @@ Chapter 1. Admin Guide
3.19. methods_nocontact (str)
3.20. header_mode (int)
3.21. methods_noinitial (str)
+ 3.22. version_table (integer)
4. Functions
@@ -202,6 +205,7 @@ Chapter 1. Admin Guide
3.19. methods_nocontact (str)
3.20. header_mode (int)
3.21. methods_noinitial (str)
+ 3.22. version_table (integer)
3.1. storage (str)
@@ -526,6 +530,17 @@ modparam("topos", "header_mode", 1)
modparam("topos", "methods_noinitial", "OPTIONS,NOTIFY")
...
+3.22. version_table (integer)
+
+ If set to 0, the module will skip checking the version of the tables.
+
+ Default value is ���1 (check for table version)���.
+
+ Example 1.22. version_table parameter usage
+...
+modparam("topos", "version_table", 0)
+...
+
4. Functions
4.1. tps_set_context(ctx)
@@ -537,7 +552,7 @@ modparam("topos", "methods_noinitial", "OPTIONS,NOTIFY")
This function can be used from ANY_ROUTE.
- Example 1.22. tps_set_context usage
+ Example 1.23. tps_set_context usage
...
request_route {
...
@@ -565,7 +580,7 @@ request_route {
reparsing the outgoing SIP message for the cases when topology hiding
is not wanted.
- Example 1.23. Usage of event_route[topos:msg-outgoing]
+ Example 1.24. Usage of event_route[topos:msg-outgoing]
...
event_route[topos:msg-outgoing] {
if($sndto(ip)=="10.1.1.10") {
@@ -584,7 +599,7 @@ event_route[topos:msg-outgoing] {
$sndto(proto) point to the destination. The SIP message is the one to
be sent out.
- Example 1.24. Usage of event_route[topos:msg-sending]
+ Example 1.25. Usage of event_route[topos:msg-sending]
...
event_route[topos:msg-sending] {
if(is_request() and $fU=="alice") {
@@ -604,7 +619,7 @@ event_route[topos:msg-sending] {
internally generated one at startup, to avoid reparsing the outgoing
SIP message for the cases when topology hiding is not wanted.
- Example 1.25. Usage of event_route[topos:msg-incoming]
+ Example 1.26. Usage of event_route[topos:msg-incoming]
...
event_route[topos:msg-incoming] {
if($si=="10.1.1.10") {
@@ -622,7 +637,7 @@ event_route[topos:msg-incoming] {
Inside the event route the variables $si, $sp and $proto point to the
source address. The SIP message is the one to be sent out.
- Example 1.26. Usage of event_route[topos:msg-receiving]
+ Example 1.27. Usage of event_route[topos:msg-receiving]
...
event_route[topos:msg-receiving] {
if(is_request() and $fU=="alice") {
<!-- 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
<!-- Describe your changes in detail -->
Add a database version check and fail gracefully if it does not match.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3639
-- Commit Summary --
* topos: Add db version check
-- File Changes --
M src/modules/topos/topos_mod.c (26)
M src/modules/topos/tps_storage.h (2)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3639.patchhttps://github.com/kamailio/kamailio/pull/3639.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3639
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/3639(a)github.com>