### 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>
### Description
I encountered an issue with a specific device that is receiving a T.38 fax. The call gets established towards the device normally with inband media, then the device requests T.38 media and tries to remove the audio media via sending port 0 in the ReInvite SDP. Also it sends connection-information only on the media level and there is no "c=" on the session level.
Reading through the related RFCs and the kamailio code and discussing this on the mailing list, we came to the conclusion that kamailio is doing everything correct as per RFC. Though we were wondering if it would be possible to adjust the parser to be not as strict as it is right now, and allow a missing "c=" line on the media-level if the stream is removed/rejected via port 0, since i see no sense in requiring connection information. Of course we are also in contact with the vendor to hopefully adjust on their side.
Here are the related RFCs:
1. RFC8866 5.7
`A session description MUST contain either at least one "c=" line in each media description or a single "c=" line at the session level. It MAY contain a single session-level "c=" line and additional media-level "c=" line(s) per-media-description, in which case the media-level values override the session-level settings for the respective media.`
2. RFC3264 8.2
`Existing media streams are removed by creating a new SDP with the port number for that stream set to zero. The stream description MAY omit all attributes present previously, and MAY list just a single media format.`
At first i was especially confused by the RFC3264 8.2 part, since it seemed correct what the device is sending, but if you read carefully and keep the wording for SDP in mind only attributes ("a=") MAY be omitted. So a "c=" line should still be in the SDP for the removed media if it's not included on the session-level. Or do you see this differently?
### Expected behavior
Kamailio allows and parses the SDP when there is no session-wide "c=", a media stream is being removed via port zero and there is no "c=" for this media stream and only the remaining media streams include a "c=" line.
#### Actual observed behavior
Kamailio throws an error when trying to parse the SDP.
#### Log Messages
```
<core> [core/parser/sdp/sdp.c:523]: parse_sdp_session(): can't find media IP in the message
```
#### SIP Traffic
```
v=0
o=xmserver 1726638425 1726638427 IN IP4 169.254.1.1
s=xmserver
t=0 0
m=audio 0 RTP/AVP 8
m=image 56002 udptl t38
c=IN IP4 169.254.1.1
a=sendrecv
a=T38FaxVersion:0
a=T38MaxBitRate:14400
a=T38FaxFillBitRemoval:0
a=T38FaxTranscodingMMR:0
a=T38FaxTranscodingJBIG:0
a=T38FaxRateManagement:transferredTCF
a=T38FaxMaxBuffer:200
a=T38FaxMaxDatagram:72
a=T38FaxUdpEC:t38UDPRedundancy
```
### Possible Solutions
### Additional Information
* **Kamailio Version** - output of `kamailio -v`
```
version: kamailio 5.8.3 (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 12.2.0
```
* **Operating System**:
```
Debian 12
Linux hostname 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/3982
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/3982(a)github.com>
Hello,
I propose to aim freezing the development for 6.0.x series at the end of
the 16th of December 2024 (Monday).
New features that one wants to get in this release series have to be
pushed to git repository or pull requests made for them. Afterwards
usually follows a 4-6 weeks of testing till the first release 6.0.0.
Unfreezing will happen earlier, after the first weeks of testing when
the 6.0 branch will be created.
Cheers,
Daniel
--
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
Discuss and track updates to default kamailio.cfg for v6.0.x series.
If you want to add something new to or remove from kamailio.cfg, post a comment in this thread.
Commits to kamailio.cfg can also reference this tracker item.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4034
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4034(a)github.com>
#### 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 -->
The function isc_match_filter uses a local variable "firstflag",
to handle the case of an HSS based terminating unregistered service.
In that case, the S-CSCF exchanges SAR/SAA with the HSS in order
to learn the subscription data and the iFC for an unregistered
user or for a PSI.
The firstflag is necessary to make a distiction between the
FAILURE ROUTE that is used for this case and the FAILURE ROUTE
that is used for transaction failure towards the AS.
The error is, the firstflag is set for the latter case, too,
which leads to a wrong handling of communication errors towards
the AS.
This PR introduces a new function that looks for the old
ISCMARK in the lumps of the stored message and hence can make a
distinction between the SAR/SAA case and the AS failure case.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4018
-- Commit Summary --
* ims_isc: bugfix: firstflag incorrect in isc_match_filter
-- File Changes --
M src/modules/ims_isc/ims_isc_mod.c (24)
M src/modules/ims_isc/mark.c (51)
M src/modules/ims_isc/mark.h (1)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4018.patchhttps://github.com/kamailio/kamailio/pull/4018.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4018
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4018(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
- [ ] Related to issue #XXXX (replace XXXX with an open issue number)
#### Description
<!-- Describe your changes in detail -->
Looks like htable module already exports API functions, but currently no other module uses them.
Added 2 more API functions for table creation (so other modules can be able to create their own hash tables if they want to)
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4010
-- Commit Summary --
* htable: export table create api functions
-- File Changes --
M src/modules/htable/api.c (10)
M src/modules/htable/api.h (4)
M src/modules/htable/ht_api.c (4)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4010.patchhttps://github.com/kamailio/kamailio/pull/4010.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4010
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4010(a)github.com>
Considering that it hasn't been much activity around the internal libraries for long time, I was wondering if it still makes sense to keep them like they are or merge them in the core.
Recently, during the devel meeting, I relocated a couple of them to the archive. The `lib/binrpc` (and `print`) can have the same fate, being not actually used.
The srdb1 is very common and I guess it is very rare the case when a deployment is used without a module not depending on it (e.g., even if dispatcher is used with a list file, the code is still linked to this library).
The `trie` library is small and `ims` is actually a set of getter functions for message attribtues/headers.
The `srdb2` is not used much, but I think the right approach for it is to change the modules using it to `libsrdb1` and get rid of it completely sometime in the future. Till then the code is not big and can reside as part of the core.
The benefits I see are in simplifying the build system (current makefiles and hopefully soon-to-be-merged the one based on cmake), reducing also the time to compute compile and link dependencies; getting rid of packaging complexity (same library may be needed by different modules, which, when packaged separately, the library has to be in a 3rd package, or have dependency of the other module's package -- probably now the libs are shipped with the core package).
The code for libs can stay at the same location, so source code for modules doesn't need to be updated, just that they are compiled with the core, removing internal libs from makefiles.
Thinking that we go for 6.0.x, clarifying the plans for this component and cleaning it, if decided so, should fit well in such version number jump.
Opinions?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4041
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4041(a)github.com>
### Description
During source compilation on Fedora 40 I see an error
```
[2024-11-15T10:13:57.497Z] make[3]: Entering directory '/root/rpmbuild/BUILD/kamailio-6.0.0-dev3/src/lib/srdb2'
[2024-11-15T10:13:57.502Z] make[3]: 'libsrdb2.so.1.0' is up to date.
[2024-11-15T10:13:57.502Z] make[3]: Leaving directory '/root/rpmbuild/BUILD/kamailio-6.0.0-dev3/src/lib/srdb2'
[2024-11-15T10:13:57.504Z] LD (gcc) [M uid_uri_db.so] uid_uri_db.so
[2024-11-15T10:13:57.535Z] make[2]: --libs8: No such file or directory
[2024-11-15T10:13:57.569Z] make[2]: --libs8: No such file or directory
[2024-11-15T10:13:57.590Z] CC (gcc) [M dialplan.so] dialplan.o
[2024-11-15T10:13:58.005Z] CC (gcc) [M dialplan.so] dp_db.o
[2024-11-15T10:13:58.331Z] CC (gcc) [M dialplan.so] dp_repl.o
[2024-11-15T10:13:58.742Z] make[3]: Entering directory '/root/rpmbuild/BUILD/kamailio-6.0.0-dev3/src/lib/srdb1'
[2024-11-15T10:13:58.748Z] make[3]: 'libsrdb1.so.1.0' is up to date.
[2024-11-15T10:13:58.748Z] make[3]: Leaving directory '/root/rpmbuild/BUILD/kamailio-6.0.0-dev3/src/lib/srdb1'
[2024-11-15T10:13:58.749Z] LD (gcc) [M dialplan.so] dialplan.so
[2024-11-15T10:13:58.776Z] make[2]: --libs8: No such file or directory
[2024-11-15T10:13:58.808Z] make[2]: --libs8: No such file or directory
[2024-11-15T10:13:58.837Z] CC (gcc) [M lcr.so] hash.o
[2024-11-15T10:13:58.984Z] CC (gcc) [M lcr.so] lcr_mod.o
[2024-11-15T10:14:00.389Z] CC (gcc) [M lcr.so] lcr_rpc.o
[2024-11-15T10:14:00.518Z] make[3]: Entering directory '/root/rpmbuild/BUILD/kamailio-6.0.0-dev3/src/lib/srdb1'
[2024-11-15T10:14:00.528Z] make[3]: 'libsrdb1.so.1.0' is up to date.
[2024-11-15T10:14:00.528Z] make[3]: Leaving directory '/root/rpmbuild/BUILD/kamailio-6.0.0-dev3/src/lib/srdb1'
[2024-11-15T10:14:00.529Z] LD (gcc) [M lcr.so] lcr.so
[2024-11-15T10:14:00.564Z] make[2]: --libs8: No such file or directory
[2024-11-15T10:14:00.592Z] make[2]: --libs8: No such file or directory
[2024-11-15T10:14:00.623Z] CC (gcc) [M regex.so] regex_mod.o
[2024-11-15T10:14:00.952Z] LD (gcc) [M regex.so] regex.so
[2024-11-15T10:14:00.997Z] CC (gcc) [M app_jsdt.so] app_jsdt_api.o
[2024-11-15T10:14:01.437Z] CC (gcc) [M app_jsdt.so] app_jsdt_kemi_export.o
[2024-11-15T10:14:02.089Z] CC (gcc) [M app_jsdt.so] app_jsdt_mod.o
[2024-11-15T10:14:02.389Z] CC (gcc) [M app_jsdt.so] duk_module_node.o
[2024-11-15T10:14:02.470Z] CC (gcc) [M app_jsdt.so] duktape.o
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4025
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4025(a)github.com>