<!-- 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 -->
- [x] 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 -->
This PR adds media forking support to the rtpengine module by exposing three functions:
rtpengine_copy_offer_f(): Sends a subscribe request to RTPEngine.
rtpengine_copy_answer_f(): Sends a subscribe answer to RTPEngine.
rtpengine_copy_delete_f(): Sends an unsubscribe request to RTPEngine.
These functions enable interaction with RTPEngine for managing media subscriptions, allowing for scenarios like media duplication or forking. This feature is based on the OpenSIPS RTPEngine module and provides similar functionality for handling media operations.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4071
-- Commit Summary --
* export subscribe operation functions
-- File Changes --
M src/modules/rtpengine/api.h (20)
M src/modules/rtpengine/rtpengine.c (217)
M src/modules/rtpengine/rtpengine.h (17)
A src/modules/rtpengine/rtpengine_common.h (28)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4071.patchhttps://github.com/kamailio/kamailio/pull/4071.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4071
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4071(a)github.com>
Yes, i tried that everything that is generated from `CMake` to be inside the `CMAKE_BINARY_DIR` aka build folder and it's respective subfolders and not pollute the src tree in any way.
Picking that they are the same is actually a good sign, that it produced identical output! But I also believe they shouldn't exist in source tree, for whatever reason. If you want or need them, use them from the build directory.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150488267(a)github.com>
Pushed another commit (05bb67d91c8c7ffc0b68513d46e1de5f68124800) to remove these files from glob result over core source folder -- the ones generated by cmake are in bin folder not in src, but I guess they were detected as being the same and thus the warnings.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487722(a)github.com>
Yeah probably they exist in your source tree under `src/core/` as well by invociking the old Makefiles? So, they are picked up by the `GLOB` as well.
These generated files should not be in the source tree but in the build tree instead. Some also argue they shouldn't even be tracked, since they can offer different things with different options and therefore should be generated everytime when options change.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487124(a)github.com>
I reverted the commit since it was reported to break on some OSes.
On macos with cmake version 3.29.5 I get this warnings. I have to investigate further, it might be my local dev setup.
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150487013(a)github.com>
Hey @miconda,
These files are generated from other files and do not exist in the source tree, when configuring. They are produced during the build step and therefore I needed to find a way to list them at sources so they don't produce the errors above.
If you search `CMakeLists.txt`, you can see the `custom_commands` that generate them and `CMake` knows not to error if not found because they are `OUTPUT` of these commands and instead built them.
I haven't seen these warning before.
```
- warnings shown before:
Warning: Source file ".../src/core/lex.yy.c" is listed multiple times for target "kamailio".
Warning: Source file ".../src/core/cfg.tab.c" is listed multiple times for target "kamailio"
```
Did you make any change before that might included this? There is only one place that list this source files as source and its here
```
target_sources(
kamailio
PRIVATE ${kamailio_SRC_FILES} ${CMAKE_CURRENT_BINARY_DIR}/core/lex.yy.c
${CMAKE_CURRENT_BINARY_DIR}/core/cfg.tab.c
)
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150486656(a)github.com>
What is the operating system and the cmake version you have?
I tested on macos with cmake version 3.29.5. and on debian 11 (32b) with cmake version 3.18.4.
Also, do you have the latest kamailio from git master branch?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150486180(a)github.com>
This commit seems to have broken the build: I am seeing the same error as CI/CD
```
/usr/bin/ld: CMakeFiles/kamailio.dir/main.c.o: in function `main':
/home/centos/src/kamailio-5.8/build/src/main.c:2509: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/main.c:2510: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/main.c:2516: undefined reference to `pp_define_set'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/main.c:2745: undefined reference to `yyin'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/main.c:2747: undefined reference to `ksr_cfg_print_initial_state'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/main.c:2748: undefined reference to `yyparse'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/core_cmd.c.o: in function `core_ppdefines':
/home/centos/src/kamailio-5.8/build/src/core/core_cmd.c:1008: undefined reference to `pp_get_define_name'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/core_cmd.c.o: in function `core_ppdefines_full':
/home/centos/src/kamailio-5.8/build/src/core/core_cmd.c:1033: undefined reference to `pp_get_define'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/ppcfg.c.o: in function `pp_substdef_add':
/home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:171: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:172: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:199: undefined reference to `pp_define_set'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/ppcfg.c.o: in function `pp_define_core':
/home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:312: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:313: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:324: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:325: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:337: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:338: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:344: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:345: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:360: undefined reference to `pp_define_set'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:365: undefined reference to `pp_define'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:369: undefined reference to `pp_define_set'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/ppcfg.c.o: in function `pp_snexpr_defval':
/home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:384: undefined reference to `pp_lookup'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:389: undefined reference to `pp_get_define'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/ppcfg.c.o: in function `pp_ifexp_eval':
/home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:434: undefined reference to `pp_ifexp_state'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:442: undefined reference to `pp_ifexp_state'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/ppcfg.c:468: undefined reference to `pp_ifexp_state'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/pv_core.c.o: in function `pv_get_def':
/home/centos/src/kamailio-5.8/build/src/core/pv_core.c:136: undefined reference to `pp_define_get'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/pv_core.c.o: in function `pv_get_defn':
/home/centos/src/kamailio-5.8/build/src/core/pv_core.c:160: undefined reference to `pp_define_get'
/usr/bin/ld: CMakeFiles/kamailio.dir/core/sr_module.c.o: in function `register_module':
/home/centos/src/kamailio-5.8/build/src/core/sr_module.c:332: undefined reference to `pp_define_set_type'
/usr/bin/ld: /home/centos/src/kamailio-5.8/build/src/core/sr_module.c:333: undefined reference to `pp_define'
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0a…
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/commit/da629accb2c2095e3255f4aa3389a0af02272980/150485816(a)github.com>
### Description
Ping @xkaraman
cmake error on installation; it seems to be looking for various xxxxx.txt files
```
cmake --install .
-- Install configuration: "Debug"
-- Installing: /home/centos/src/CHROOT/usr/local/kamailio/sbin/kamailio
-- kamailio.cfg already exists in /home/centos/src/CHROOT/usr/local/kamailio/etc/kamailio/kamailio.cfg Installing as kamailio.sample
-- Up-to-date: /home/centos/src/CHROOT/usr/local/kamailio/etc/kamailio/kamailio.cfg.sample
-- Installing: /home/centos/src/CHROOT/usr/local/kamailio/lib64/kamailio/modules/async.so
-- Set runtime path of "/home/centos/src/CHROOT/usr/local/kamailio/lib64/kamailio/modules/async.so" to "/usr/local/kamailio/lib64/kamailio"
-- Installing: /home/centos/src/CHROOT/usr/local/kamailio/share/doc/kamailio/modules/README.async
-- Installing: /home/centos/src/CHROOT/usr/local/kamailio/lib64/kamailio/modules/auth.so
-- Set runtime path of "/home/centos/src/CHROOT/usr/local/kamailio/lib64/kamailio/modules/auth.so" to "/usr/local/kamailio/lib64/kamailio"
CMake Error at src/modules/cmake_install.cmake:96 (file):
file INSTALL cannot find
"/home/centos/src/kamailio-5.8/src/modules/auth/auth.txt": No such file or
directory.
Call Stack (most recent call first):
src/cmake_install.cmake:85 (include)
cmake_install.cmake:47 (include)
```
### Troubleshooting
#### Reproduction
```
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/kamailio .
cmake --build .
DESTDIR=~/temp/INSTALLROOT cmake --install .
```
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4076
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4076(a)github.com>
Module: kamailio
Branch: master
Commit: 763d3622fdb2cdd7916963b6d3f4d532525a5fcc
URL: https://github.com/kamailio/kamailio/commit/763d3622fdb2cdd7916963b6d3f4d53…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2024-12-17T13:31:59Z
cmake: Make docs install optional
---
Modified: cmake/modules-docs.cmake
---
Diff: https://github.com/kamailio/kamailio/commit/763d3622fdb2cdd7916963b6d3f4d53…
Patch: https://github.com/kamailio/kamailio/commit/763d3622fdb2cdd7916963b6d3f4d53…
---
diff --git a/cmake/modules-docs.cmake b/cmake/modules-docs.cmake
index f4ac35d3ba6..53beeae6fb9 100644
--- a/cmake/modules-docs.cmake
+++ b/cmake/modules-docs.cmake
@@ -140,6 +140,9 @@ else()
RENAME README.${MODULE_NAME}
DESTINATION ${CMAKE_INSTALL_DOCDIR}/modules
COMPONENT kamailio_docs
+ # Since the depepndencies might not have been build as they are not in the default target
+ # and required to build explicitly using `make kamailio_docs`, allow them to be optional.
+ OPTIONAL
)
endif()