Module: kamailio
Branch: 6.0
Commit: 225f23a03a2941d44cbb1b56d0d95adcc3f78004
URL: https://github.com/kamailio/kamailio/commit/225f23a03a2941d44cbb1b56d0d95ad…
Author: herlesupreeth <herlesupreeth(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2025-01-29T10:31:27+01:00
ims_registrar_scscf: send NOTIFY in case of subsequent SUBSCRIBE as per RFC 3265
(cherry picked from commit 7de4f84f08e4ce910c007aad3fa2cadbe4b11dd2)
---
Modified: src/modules/ims_registrar_scscf/registrar_notify.c
---
Diff: https://github.com/kamailio/kamailio/commit/225f23a03a2941d44cbb1b56d0d95ad…
Patch: https://github.com/kamailio/kamailio/commit/225f23a03a2941d44cbb1b56d0d95ad…
---
diff --git a/src/modules/ims_registrar_scscf/registrar_notify.c b/src/modules/ims_registrar_scscf/registrar_notify.c
index aade763a09a..bcddbf17cc2 100644
--- a/src/modules/ims_registrar_scscf/registrar_notify.c
+++ b/src/modules/ims_registrar_scscf/registrar_notify.c
@@ -497,13 +497,15 @@ int event_reg(udomain_t *_d, impurecord_t *r_passed, ucontact_t *c_passed,
case IMS_REGISTRAR_NONE:
return 0;
case IMS_REGISTRAR_SUBSCRIBE:
+ case IMS_REGISTRAR_SUBSEQUENT_SUBSCRIBE:
if(r_passed || !presentity_uri || !watcher_contact || !_d) {
LM_ERR("this is a subscribe called from cfg file: r_passed be "
"zero and presentity_uri, watcher_contact and _d should "
"be valid for a subscribe");
return 0;
}
- LM_DBG("Event type is IMS REGISTRAR SUBSCRIBE about to get "
+ LM_DBG("Event type is IMS REGISTRAR SUBSCRIBE/RE-SUBSCRIBE about "
+ "to get "
"reginfo_full\n");
//lets get IMPU list for presentity as well as register for callbacks (IFF it is a new SUBSCRIBE)
@@ -1376,8 +1378,8 @@ int subscribe_to_reg(struct sip_msg *msg, char *_t, char *str2)
subscribe_reply(
msg, 200, MSG_REG_SUBSCRIBE_OK, &expires, &scscf_name_str);
- if(event_type == IMS_REGISTRAR_SUBSCRIBE) {
- //do reg event only for the initial subscribe
+ if(event_type == IMS_REGISTRAR_SUBSCRIBE
+ || event_type == IMS_REGISTRAR_SUBSEQUENT_SUBSCRIBE) {
if(event_reg(domain, 0, 0, event_type, &presentity_uri,
&watcher_contact, 0, 0, 0)
!= 0) {
@@ -1723,7 +1725,8 @@ void create_notifications(udomain_t *_t, impurecord_t *r_passed,
}
//This is a fix to ensure that when a user subscribes a full reg info is only sent to that UE
- if(event_type == IMS_REGISTRAR_SUBSCRIBE) {
+ if(event_type == IMS_REGISTRAR_SUBSCRIBE
+ || event_type == IMS_REGISTRAR_SUBSEQUENT_SUBSCRIBE) {
if(contact_match(watcher_contact, &s->watcher_contact)
&& (presentity_uri->len == s->presentity_uri.len)
&& (memcmp(s->presentity_uri.s, presentity_uri->s,
#### 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)
- [ ] New feature (non-breaking change which adds new functionality)
- [x] 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 is an attempt to fix the combination of the outbound/rr modules and ``tcp_accept_haproxy=yes``. This combination is currently broken, as previously reported on the mailing list: https://www.mail-archive.com/sr-users@lists.kamailio.org/msg21854.html
The issue is that the destination address/port combo of the haproxy side is encoded into the flow token. When the rr module decodes the flow token and tries to look up the listening socket using ``find_si``, it cannot be found, because it is given the destination address/port combo of the connection of the haproxy side, not the address/port combo that Kamailio is actually listening on.
This patch fixes the issue by encoding the ``bind_address`` of the socket the connection was received on into the flow token as the destination address. The source address remains unchanged, as it *can* be used to look up the TCP connection (with a minor patch to ``_tcpconn_find`` in ``tcp_main.c``)
While I've done quite a bit of testing with this patchset, I find it difficult to oversee the full impact of this change in Kamailio's large codebase. Any feedback is welcome.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4105
-- Commit Summary --
* outbound: encode bind address into flow token as destination
* core: tcp_main - include local dst port in conn lookup when using haproxy
-- File Changes --
M src/core/tcp_main.c (3)
M src/modules/outbound/outbound_mod.c (20)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4105.patchhttps://github.com/kamailio/kamailio/pull/4105.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4105
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4105(a)github.com>
#### Pre-Submission Checklist
- [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:
- [x] PR should be backported to stable branches
- [x] Tested changes locally
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
On CentOS, the present build error var may be used uninitialized.
This fixes this.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4129
-- Commit Summary --
* janssonrpcc: fixed warning var may be used uninitialized
-- File Changes --
M src/modules/janssonrpcc/janssonrpc_server.c (1)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4129.patchhttps://github.com/kamailio/kamailio/pull/4129.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4129
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4129(a)github.com>
### Description
Unexpected Behavior from transformations, psuedo variables, and topos.
Topos is in use for topology hiding I'm not sure if this is part of the problem as I can't easily test this in the current environment, although I do know indexes should work with $hdr() psuedo variables.
*Issue 1*
```
Record-Route: <sip:a@a.com>,<sip:b@b.com>,<sip:c@c.com>
$(hdr(Record-Route)[0]) results in "<sip:a@a.com>,<sip:b@b.com>,<sip:c@c.com>"
```
Expected result would be <sip:a@a.com>
I've also tested using index 1 incase 0 was equivalent to *, same results.
Which lead me to the second issue.
*issue 2*
```
Correct:
$(hdr(Record-Route)[*]) results in <sip:a@a.com>,<sip:b@b.com>,<sip:c@c.com>
Correct:
$(hdr(Record-Route)[*]{re.subst,/,/|/g}) results in <sip:a@a.com>|<sip:b@b.com>|<sip:c@c.com>
Incorrect:
$(hdr(Record-Route)[*]{re.subst,/,/|/g}{param.valueat,0,|}) results in some random string pulled from part of the Record-Route header
```
Expected result would be <sip:a@a.com>
### Possible Solutions
TBD
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.8.2 (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, MEM_JOIN_FREE, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED
ADAPTIVE_WAIT_LOOPS 1024, MAX_RECV_BUFFER_SIZE 262144, MAX_SEND_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 with gcc 10.2.1
```
* **Operating System**:
```
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4127
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4127(a)github.com>
Hello,
I am considering to release Kamailio v5.8.5 (out of branch 5.8) on
Thursday, Jan 23, 2025. If anyone is aware of issues not yet on the bug
tracker, report them there asap in order to have a better chance to be
fixed.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com