<!-- 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 -->
This PR adds 1 UAC module function and 1 TM module modparam. It enables "uac:reply" event route trigger on timeout or non-2xx replies. Basically it: - adds TMCB_ON_FAILURE callback for UAC - copies the TM uac content into uas; thus failure route will have the uas to work with. => this part of the code was already there, i just enabled it via (another) modparam.
So far, is basically tested on our side, without any apparent issues. More testing will follow.
Please have a look on this and tell me what you think about it.
Thank you, Stefan You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/3047
-- Commit Summary --
* uac: add new function uac_req_send_fr() * tm: Add enable_uac_fr modparam
-- File Changes --
M src/modules/tm/config.c (5) M src/modules/tm/config.h (1) M src/modules/tm/doc/params.xml (16) M src/modules/tm/tm.c (1) M src/modules/tm/uac.c (2) M src/modules/uac/api.h (2) M src/modules/uac/doc/uac_admin.xml (27) M src/modules/uac/uac.c (1) M src/modules/uac/uac_send.c (23) M src/modules/uac/uac_send.h (3)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/3047.patch https://github.com/kamailio/kamailio/pull/3047.diff
Hi, I see PR build fails because i changed the header of UAC module api `uacb->req_send = uac_req_send;`. The solution(s) I can see right now are either: 1. Guard the uac_req_send(void/int) by some compilation #define or 2. Get the tm module 'enable_uac_fr' config parameter value inside `uac_req_send(void)` function and decide adding TMCB_ON_FAILURE if it is enabled or not. or 3. Adapt the test function with an parameter of "0"
Wouldn't it be better to try to leverage somehow `$uac_req(evroute)`? Now it has to be set to `1` to get the event route executed. The field can be turned into a flags meaning, so if it is set to 2, then adds the execution as per this PR:
* https://www.kamailio.org/wiki/cookbooks/5.5.x/pseudovariables#uac_req_key
By that, the prototype of the function does not change.
Good idea! Thank you! I will update the PR soon.
@smititelu pushed 2 commits.
8ea20adbba3969216c25f9aad3ef3e179e2a0cda uac: trigger event route for failure and timeout d2aa548f8927492260516f1d8bf2186db641db25 tm: Add enable_uac_fr modparam
Thanks!
Merged #3047 into master.