Hi Folks
Let me do one design question about to writing code module when write it.
What’s conditions to allow an module exported function may be running from
Kamailio route blocks?
Why can I running an module function from REQUST_ROUTE and isn’t from
REPLY_ROUTE block?
What restricts me to run from one block and not another?
Best regards
CMA
<!-- 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
- [ ] Commits are split per component (core, individual modules, libs, utils, ...)
- [ ] 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 -->
kamcmd cfg.reset "group_name", cfg.reset has been created in order to reset all the variables of the referred group to be set to their initial values (default).
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1179
-- Commit Summary --
* cfg_rpc: rpc_reset() function has been created
* Merge branch 'master' of https://github.com/kamailio/kamailio into cfg_reset
* README file has been re-created.
* Merge branch 'master' of https://github.com/kamailio/kamailio into cfg_reset
* Compilation problem has been solved
* Merge branch 'master' of https://github.com/kamailio/kamailio into cfg_reset
-- File Changes --
M src/core/cfg/cfg_ctx.c (68)
M src/core/cfg/cfg_ctx.h (3)
M src/modules/cfg_rpc/README (118)
M src/modules/cfg_rpc/cfg_rpc.c (56)
M src/modules/cfg_rpc/doc/rpc.xml (16)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1179.patchhttps://github.com/kamailio/kamailio/pull/1179.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1179
Hello,
We are experiencing an issue when having some blocking code in the
dialog:end event route. If the code takes too long to execute then CDR
information is not logged.
In our case we have a blocking socket trying to establish a connection
and waiting 500ms before failing. When it timeouts, the accounting
module will never log any CDR logs for that call. It appears that the
callbacks for DLGCB_TERMINATED_CONFIRMED event are never called. That is
because the function dlg_terminated_confirmed is never called (this
function is registered as a callback to the TMCB_RESPONSE_OUT event from
tm module).
After further investigation, the problem seems to be related to a race
condition between two processes when dealing with ending a dialog:
From what we saw the dialog:end event route is treated when a BYE
request is received. But if that takes too long, and that BYE request
will be retransmitted (we are using SIPp to test this, and SIPp will
automatically retransmit the message), it will then be treated by a
different process.
When this happens, the first process has already modified the dialog
state, so the second process will not execute code specific to dialog
ending from the dialog module dlg_onroute function. It will not execute
the event route, nor the DLGCB_TERMINATED event callbacks, and it will
neither register the dlg_terminated_confirmed function to the
TMCB_RESPONSE_OUT event. This means that the second process will
actually finish processing the BYE faster then the first process. By the
time the first process finishes with processing the dialog:end event
route, the transaction corresponding to the BYE request is already
created, and even though dlg_terminated_confirmed function is eventually
registered for the TMCB_RESPONSE_OUT event, it is too late because this
event was already treated, and all callbacks registered for it were
called. This means that DLGCB_TERMINATED_CONFIRMED event will never be
treated, and the registered callbacks for this event (including the
accounting module functions) will not get called.
We managed to work around this behavior by decreasing the timeout of the
socket so that the BYE can be processed before a retransmit occurs, but
maybe there is a different solution to fix this issue. Do you have any
suggestions on how to solve this problem?
Thank you,
Claudiu Boriga.
<!-- 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
- [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 -->
Depending on how many custom attributes one has set in the dispatcher file, some of them might be ignored due to the 256 read line buffer size. Increase the line buffer size. Probably adding a modparam for that would be a better approach ?! but I want to avoid any dynamic alloc/free(for now).
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/1180
-- Commit Summary --
* dispatcher: Increase line buffer size
-- File Changes --
M src/modules/dispatcher/dispatch.c (6)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/1180.patchhttps://github.com/kamailio/kamailio/pull/1180.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1180