<!-- 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 --> - [ ] Commit message has the format required by CONTRIBUTING guide - [ ] Commits are split per component (core, individual modules, libs, utils, ...) - [ ] Each component has a single commit (if not, squash them into one commit) - [ ] No commits to README files for modules (changes must be done to docbook files in `doc/` subfolder, the README file is autogenerated)
#### Type Of Change - [ ] Small bug fix (non-breaking change which fixes an issue) - [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 -->
The `ims_qos` module had a few limitations. This fork of that module adds: - AAR for the registration (signaling path monitoring) - subsequent AARs in calls - support for STR - extra event_routes on Rx authorization session events - extra AVPs decoding and use
The dependency and use of the `ims_dialog` was removed. We think that the respective module has fallen behind `dialog` (although it should've replaced it? don't know...). Cleaning/upgrading that module too might be too much effort.
Since these changes might be breaking things for other folks using IMS, we are pushing these as an alternative module. We hope that we'll find though consensus in the future and either remove or merge with the older `ims_qos` module. Same would be valid for `ims_dialog` and `dialog`, yet those also might need some upgrades. You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3921
-- Commit Summary --
* ims_qos_npn: imported modified module * src: added ims_qos_npn to Makefile.groups
-- File Changes --
M src/Makefile.groups (2) A src/modules/ims_qos_npn/Makefile (19) A src/modules/ims_qos_npn/README (781) A src/modules/ims_qos_npn/cdpeventprocessor.c (382) A src/modules/ims_qos_npn/cdpeventprocessor.h (87) A src/modules/ims_qos_npn/doc/Makefile (4) A src/modules/ims_qos_npn/doc/ims_qos.xml (113) A src/modules/ims_qos_npn/doc/ims_qos_admin.xml (882) A src/modules/ims_qos_npn/ims_qos_mod.c (2173) A src/modules/ims_qos_npn/ims_qos_mod.h (85) A src/modules/ims_qos_npn/ims_qos_stats.c (156) A src/modules/ims_qos_npn/ims_qos_stats.h (38) A src/modules/ims_qos_npn/rx_aar.c (1296) A src/modules/ims_qos_npn/rx_aar.h (131) A src/modules/ims_qos_npn/rx_asr.c (124) A src/modules/ims_qos_npn/rx_asr.h (59) A src/modules/ims_qos_npn/rx_authdata.c (494) A src/modules/ims_qos_npn/rx_authdata.h (125) A src/modules/ims_qos_npn/rx_avp.c (2144) A src/modules/ims_qos_npn/rx_avp.h (118) A src/modules/ims_qos_npn/rx_rar.c (160) A src/modules/ims_qos_npn/rx_rar.h (34) A src/modules/ims_qos_npn/rx_str.c (184) A src/modules/ims_qos_npn/rx_str.h (61) A src/modules/ims_qos_npn/sem.h (90) A src/modules/ims_qos_npn/stats.c (79) A src/modules/ims_qos_npn/stats.h (61)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3921.patch https://github.com/kamailio/kamailio/pull/3921.diff
@vingarzan pushed 2 commits.
ea9a6027ca55a623af1c46b1eb555d5f6a34b506 ims_qos_npn: imported modified module a1256431c587f544ef1b488c3fb832accbd412ba src: added ims_qos_npn to Makefile.groups
Merged #3921 into master.
This was already merged after 2 days without anybody commenting, but nevertheless my comments now.
I don't think its a good idea to create a fork of this module because we are afraid of breaking things. IMHO the better approach would be to work on the existing module and then figure out if things really break, and add some compabilitity functions later. As we have seen in the ims_dialog module case, this forked modules seems to live a long time as nobody has time to do a later merging.
Hey Henning!
sorry, will wait more in the future. For IMS modules, the interest seemed to be low and the state kind of experimental, so I pulled the trigger on the last day before going 1 week in vacation, reasoning that at least it has no breaking changes.
I fully agree with you. But also this module breaks away and there is further work required to make it really good and worthy of replacing the older module and dropping `ims_dialog`. I would rather surface WIP, than come-up with a huge PR after a long time.
For context: we're working at Neat Path Networks on a slightly different approach, where the IPsec part is external to a Kamailio P-CSCF. Hence some modules need less functionality, or we're trying to upgrade some to rather use the routing script and better-maintained/generic modules, instead of IMS-specific modules and opaque functions. We still hope though to share efforts with the bigger Kamailio IMS community, hence we'd rather avoid keeping our modules on a fork.
P.S. the IMS modules have no tests that I'm aware of, so trying to merge into the `ims_qos` module was way harder. If anyone is using Kamailio IMS into production, let's bundle up and write some, so that we can merge&deploy with confidence.