### Description
if multiple sip websocket clients are subscribed to some UA and one of the watchers suddenly disappears (e.g. the web page is reloaded), then no NOTIFY is ever sent after issuing a `pres_refresh_watchers()`.
The following error is logged:
```
WARNING: <core> [core/msg_translator.c:3007]: via_builder(): TCP/TLS connection (id: 0) for WebSocket could not be found
ERROR: tm [t_msgbuilder.c:1423]: assemble_via(): via building failed
ERROR: tm [t_msgbuilder.c:1614]: build_uac_req(): error while assembling Via
ERROR: tm [uac.c:552]: t_uac_prepare(): Error while building message
ERROR: presence [notify.c:1734]: send_notify_request(): in function tm t_request_within()
ERROR: presence [notify.c:1829]: notify(): sending Notify not successful
ERROR: presence [notify.c:1585]: query_db_notify(): Could not send notify for [event]=dialog
ERROR: presence [presence.c:739]: pres_refresh_watchers(): sending Notify requests
```
### Troubleshooting
when the client disconnects, the old watcher is not removed from the active_watchers table, instead it coexists with the new one, but the stale connection causes the error above when sending the notify, and then all of the following watchers (even the valid ones) are skipped too.
Looking at the logs, the valid watchers are not notified because the while loop [here](https://github.com/kamailio/kamailio/blob/b96bc11a54f11ec688429c057bf… is skipped because of the `goto done` line in case of errors, which happens because it fails to build the via header for the message relevant to the stale websocket connection.
By breaking out of the while loop, the remaining subs in the `subs_array` are skipped.
#### Reproduction
Just subscribe to a sip client using a websocket-based phone, then abruptly disconnect it (e.g. by reloading the web page) and then issue a `pres_refresh_watchers()` to make it generate a notify.
#### Debugging Data
#### Log Messages
#### SIP Traffic
### Possible Solutions
I tried to use the "websocket:closed" route to purge stale connections, but to my knowledge there are no APIs to clean invalid watchers.
A possible solution could be to automatically remove the watchers on disconnection and maybe skip the invalid ones without exiting from the refresh loop
### Additional Information
kamailio 5.8.2
* **Operating System**:
Rocky Linux 9
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4118
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4118(a)github.com>
### Description
Hi!
We are in the progress of upgrading from Kamailio 5.5 to 5.8. During our testing we have noticed a new error being reported from Kamailio. We don’t see any other errors following it.
```jsx
/usr/sbin/kamailio[201]: CRITICAL: <core> [core/tcp_main.c:5544]: tcp_timer_check_connections(): message processing timeout on connection id: 67896 (state: 3) - closing
```
It does seem to be [new code](https://github.com/kamailio/kamailio/blob/master/src/core/tcp_main.c#… in Kamailio reporting this issue.
Given that this is a fairly expected thing, cleaning up a connection which receives no traffic within the given time, is there a need for it to be reported on CRITICAL?
I’d also expect it to be caught by
```
event_route[tcp:timeout] {
xlog("L_INFO","connection $conid timeouts (unanswered keepalives)");
}
```
given that [the description](https://www.kamailio.org/docs/modules/stable/modules/tcpops.ht… of this one is `Called for connection timeouts (unanswered keepalives).`.
### Troubleshooting
We don't have any way to reproduce it, we are still investigating it to figure out the cause. It happens around every 2 hours, so we think there might some some scheduled test or job running in our test system causing this.
### Additional Information
* **Kamailio Version** - 5.8.3
* **Operating System**: Debian 12 AMI from the AWS Marketplace.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3995
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3995(a)github.com>
Documentation https://www.kamailio.org/docs/modules/devel/modules/tm.html#tm.p.fr_timer says:
>Timer which hits if no **final reply** for a request or ACK for a negative INVITE reply arrives (in milliseconds).
Looks like it is not correct description - fr_timer value works until 1xx(not **final**) response received and then timer restarted with fr_inv_timer value there:
https://github.com/kamailio/kamailio/blob/master/src/modules/tm/t_reply.c#L…
Looks like old doc from sip router https://sip-router.org/wiki/ref_manual/timers explains it correctly:
> fr_timer
This timer is used for all SIP requests. It hits if no reply for an INVITE request or other request has been received (F in milliseconds). If a provisional reply is received for an INVITE (any 1xx), then the fr_inv_timer will be used instead. And if no replies (at all) for an INVITE are received before `fr_timer` hits, the transaction is terminated with a 408 in failure route.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3939
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3939(a)github.com>
ChristianBergerSipgate created an issue (kamailio/kamailio#4168)
We think we have found a potential bug in the path module.
When we call `add_path_received()` we get the following for WSS connections:
`Path: <sip:217.10.77.242;lr;received=sip:217.10.69.93:42612%3Btransport%3Dws>`
We think there should be a `transport%3Dwss` appended instead of ws.
We have looked a bit into the code and think that this is caused by the following definition:
```
in modules/path/path.c
const static char *proto_strings[] = {
[PROTO_TCP] = "%3Btransport%3Dtcp",
[PROTO_TLS] = "%3Btransport%3Dtls",
[PROTO_SCTP] = "%3Btransport%3Dsctp",
[PROTO_WS] = "%3Btransport%3Dws",
[PROTO_WSS] = "%3Btransport%3Dws",
};
```
We think that on the last line, it should read
` [PROTO_WSS] = "%3Btransport%3Dwss",`
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4168
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4168(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
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Some improvements related to DMQ node status:
1. Allow other modules that use DMQ to detect NOT_ACTIVE nodes via default response callback. Note that only internal dmq ping mechanism can set them back to DMQ_NODE_ACTIVE status.
2. Simplify node status and merge DMQ_NODE_PENDING + DMQ_NODE_TIMEOUT into DMQ_NODE_NOT_ACTIVE since those specific states were never used to be compared against.
3. Add new mod parameters which will control after how many fails the node should be moved to DMQ_NODE_NOT_ACTIVE state.
Under testing currently. Will update if any bugs found.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4182
-- Commit Summary --
* dmq: add default response callback
* dmq: simplify node status
* dmq: add two new modparams
-- File Changes --
M src/modules/dialog/dlg_dmq.c (16)
M src/modules/dialog/dlg_dmq.h (3)
M src/modules/dmq/dmq.c (4)
M src/modules/dmq/dmq.h (2)
M src/modules/dmq/dmq_funcs.c (6)
M src/modules/dmq/dmqnode.c (70)
M src/modules/dmq/dmqnode.h (9)
M src/modules/dmq/doc/dmq_admin.xml (64)
M src/modules/dmq/notification_peer.c (80)
M src/modules/dmq/notification_peer.h (3)
M src/modules/dmq_usrloc/usrloc_sync.c (12)
M src/modules/dmq_usrloc/usrloc_sync.h (2)
M src/modules/htable/ht_dmq.c (15)
M src/modules/htable/ht_dmq.h (3)
M src/modules/presence/presence_dmq.c (16)
M src/modules/presence/presence_dmq.h (3)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4182.patchhttps://github.com/kamailio/kamailio/pull/4182.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4182
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4182(a)github.com>
- add dispatcher modparam `ds_ping_socket`
- add gateway param `ping_socket`
<!-- 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)
- [ ] 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
could be useful for HA use cases where multiple kamailio nodes share a common Virtual IP (e.g.: managed by the VRRP).
we need to route requests using Virtual IP socket configured with `ds_default_sockname`/`socket` and to perform destinations probing using self-IP socket configured with `ds_ping_socket`/`ping_socket`.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4186
-- Commit Summary --
* dispatcher: added ping socket configuration
-- File Changes --
M src/modules/dispatcher/dispatch.c (32)
M src/modules/dispatcher/dispatch.h (2)
M src/modules/dispatcher/dispatcher.c (25)
M src/modules/dispatcher/doc/dispatcher_admin.xml (20)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4186.patchhttps://github.com/kamailio/kamailio/pull/4186.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4186
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4186(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)
- [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 -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4166
-- Commit Summary --
* ims_registrar_scscf: fix reg_fetch_contacts call
* ims_registrar_scscf: fix documentation
-- File Changes --
M src/modules/ims_registrar_scscf/doc/ims_registrar_scscf_admin.xml (6)
M src/modules/ims_registrar_scscf/regpv.c (25)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4166.patchhttps://github.com/kamailio/kamailio/pull/4166.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4166
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4166(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
- [ ] 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)
- [ ] New feature (non-breaking change which adds new functionality)
- [ ] Breaking change (fix or feature that would change existing functionality)
#### Checklist:
<!-- Go over all points below, and after creating the PR, tick the checkboxes that apply -->
- [ ] PR should be backported to stable branches
- [ ] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4192
-- Commit Summary --
* cmake: Alter some of cmake-format options
* cmake: Fix formatting according to cmake-format config file.
-- File Changes --
M CMakeLists.txt (18)
M cmake/BuildType.cmake (8)
M cmake/cmake-format.py (4)
M cmake/compiler-specific.cmake (24)
M cmake/defs.cmake (29)
M cmake/groups.cmake (45)
M cmake/modules-docs.cmake (94)
M cmake/modules/FindBerkeleyDB.cmake (60)
M cmake/modules/FindErlang.cmake (52)
M cmake/modules/FindLdap.cmake (32)
M cmake/modules/FindLibev.cmake (4)
M cmake/modules/FindLibfreeradiusClient.cmake (21)
M cmake/modules/FindMariaDBClient.cmake (3)
M cmake/modules/FindMySQL.cmake (114)
M cmake/modules/FindNETSNMP.cmake (15)
M cmake/modules/FindOracle.cmake (11)
M cmake/modules/FindRadius.cmake (6)
M cmake/os-specific/darwin.cmake (38)
M cmake/os-specific/dragonfly.cmake (9)
M cmake/os-specific/freebsd.cmake (3)
M cmake/os-specific/linux.cmake (9)
M src/CMakeLists.txt (44)
M src/core/CMakeLists.txt (16)
M src/modules/CMakeLists.txt (55)
M src/modules/app_perl/CMakeLists.txt (17)
M src/modules/auth_radius/CMakeLists.txt (7)
M src/modules/db2_ldap/CMakeLists.txt (3)
M src/modules/db_berkeley/CMakeLists.txt (3)
M src/modules/dnssec/CMakeLists.txt (5)
M src/modules/kazoo/CMakeLists.txt (3)
M src/modules/nghttp2/CMakeLists.txt (5)
M src/modules/nsq/CMakeLists.txt (5)
M src/modules/phonenum/CMakeLists.txt (16)
M src/modules/ruxc/CMakeLists.txt (3)
M src/modules/sctp/CMakeLists.txt (6)
M src/modules/secsipid_proc/CMakeLists.txt (3)
M src/modules/snmpstats/CMakeLists.txt (3)
M src/modules/tls/CMakeLists.txt (29)
M src/modules/tlsa/CMakeLists.txt (11)
M src/modules/xhttp_pi/CMakeLists.txt (7)
M utils/CMakeLists.txt (6)
M utils/db_berkeley/CMakeLists.txt (3)
M utils/kamcmd/CMakeLists.txt (26)
M utils/kamctl/CMakeLists.txt (161)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4192.patchhttps://github.com/kamailio/kamailio/pull/4192.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4192
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4192(a)github.com>