anfedoro created an issue (kamailio/kamailio#4344)
Hello please advice what is wrong
The scenario is following
Client get registred with p-cscf using udp as transport and ipsec enabled
Registration completed successfully.
Client send reg event SUBSCRIBE, and get 200 back
But it do not get any notification then.
In p-cscf container I am observing NOTIFY coming from s-cscf and then something strange happen
```
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: PCSCF: NOTIFY sip:172.22.0.1:55822;transport=udp (sip:9076543210@ims.mnc001.mcc001.3gppnetwork.org (172.22.0.20:6060) to sip:9076543210@ims.mnc001.mcc001.3gppnetwork.org, 0ed4dd8c-89a5-42ac-80cb-690891a400f1)
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: Within DLG
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: Within loose route
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: PCSCF MO_indialog:
Destination URI: <null>
Request URI: sip:172.22.0.1:55822;transport=udp
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: Source IP and Port: (172.22.0.20:6060)
Route-URI: sip:mo@172.22.0.21:6101;lr=on;ftag=b7f568fe
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: Received IP and Port: (172.22.0.21:6101)
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: Next hop domain: (172.22.0.1)
52(95) NOTICE: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} <script>: Contact header: <sip:scscf.ims.mnc001.mcc001.3gppnetwork.org:6060>
52(95) INFO: {1 350779919 NOTIFY 0ed4dd8c-89a5-42ac-80cb-690891a400f1} ims_ipsec_pcscf [cmd.c:1187]: ipsec_forward(): new destination URI: sip:172.22.0.1:55822
99(142) ERROR: <core> [core/tcp_main.c:4645]: handle_tcpconn_ev(): connect 172.22.0.1:55822 failed
```
as you may see, request states transport=udp,
**Request URI: sip:172.22.0.1:55822;transport=udp**
while p-cscf then trying to use tcp??
**99(142) ERROR: <core> [core/tcp_main.c:4645]: handle_tcpconn_ev(): connect 172.22.0.1:55822 failed**
what is wrong?
Using tcp as a transport initially works well and NOTIFY is coming to the client.
thanks in advance
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4344
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4344(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 all 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 -->
Add auth_web3 module for blockchain-based authentication
This PR introduces a new authentication module that provides blockchain-powered
digest authentication via Oasis Sapphire smart contracts while maintaining full
compatibility with standard Kamailio auth module functions.
**Key Features:**
- Blockchain-based digest authentication via Oasis Sapphire smart contracts
- RFC2617 compliant MD5 and SHA-256 digest authentication
- Full compatibility with standard auth functions (www_authenticate, proxy_authenticate)
- Configurable parameters: web3_rpc_url, web3_contract_address, web3_debug_mode, web3_timeout
- Comprehensive error handling for network failures and blockchain connectivity
- Nonce management and replay protection identical to traditional auth
**Files Added:**
- src/modules/auth_web3/ (complete module with 9 .c files and supporting headers)
- Comprehensive documentation in doc/ subfolder
- CMakeLists.txt with curl dependency handling
**Testing Summary:**
- **Build Verification**: Module compiles successfully with curl dependency
- **Load Testing**: Module loads without errors in Kamailio configuration
- **Authentication Scenarios**:
- Valid credentials: Successful authentication with correct blockchain credentials
- Invalid credentials: Proper rejection of wrong passwords (tested with Zoiper)
- Network failures: Graceful handling of blockchain RPC connectivity issues
- Parameter validation: All module parameters properly validated
- **Compatibility Testing**: Full compatibility with existing auth module functions
- **Error Handling**: Comprehensive error logging and fallback behavior
**Documentation Status:**
- Complete XML documentation in doc/ subfolder
- Module parameters documented (auth_web3_params.xml)
- Functions documented (auth_web3_functions.xml)
- Configuration examples provided
- Usage patterns and best practices included
**Limitations:**
- Requires external blockchain RPC endpoint (Oasis Sapphire)
- Network dependency for authentication (no offline fallback)
- Requires curl library for HTTP requests to blockchain
- Smart contract must be deployed on target blockchain network
- Authentication speed depends on blockchain network response time
**Build System:**
- Added to MOD_LIST_UTILS group for proper curl dependency handling
- Includes CMakeLists.txt with find_package(CURL REQUIRED)
This module provides a drop-in replacement for traditional authentication while
leveraging blockchain technology for credential verification.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4328
-- Commit Summary --
* auth_web3: initial blockchain authentication module
* cmake: add auth_web3 to MOD_LIST_UTILS group
-- File Changes --
M cmake/groups.cmake (4)
A src/modules/auth_web3/CMakeLists.txt (9)
A src/modules/auth_web3/Makefile (17)
A src/modules/auth_web3/README (1229)
A src/modules/auth_web3/api.c (324)
A src/modules/auth_web3/api.h (170)
A src/modules/auth_web3/auth_web3_mod.c (1739)
A src/modules/auth_web3/auth_web3_mod.h (54)
A src/modules/auth_web3/challenge.c (316)
A src/modules/auth_web3/challenge.h (54)
A src/modules/auth_web3/doc/Makefile (4)
A src/modules/auth_web3/doc/auth_web3.xml (174)
A src/modules/auth_web3/doc/auth_web3_faq.xml (174)
A src/modules/auth_web3/doc/auth_web3_functions.xml (405)
A src/modules/auth_web3/doc/auth_web3_params.xml (922)
A src/modules/auth_web3/nc.c (246)
A src/modules/auth_web3/nc.h (78)
A src/modules/auth_web3/nid.c (96)
A src/modules/auth_web3/nid.h (88)
A src/modules/auth_web3/nonce.c (460)
A src/modules/auth_web3/nonce.h (228)
A src/modules/auth_web3/ot_nonce.c (232)
A src/modules/auth_web3/ot_nonce.h (83)
A src/modules/auth_web3/rfc2617.c (145)
A src/modules/auth_web3/rfc2617.h (97)
A src/modules/auth_web3/rfc2617_sha256.c (150)
A src/modules/auth_web3/rfc2617_sha256.h (71)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4328.patchhttps://github.com/kamailio/kamailio/pull/4328.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4328
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4328(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 -->
This PR introduces a new mode on the modparam `evlreq_mode` to allow for choosing what should emit the local-request event. It enables the ACK that are generated from kamailio to also emit the event if the user chose to do so.
With this PR the modes are
- 0 for None
- 1 for Cancel
- 2 for Acks
- 3 for Both
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4343
-- Commit Summary --
* tm: Trigger local-request event for ACK on negative replies
* update for kemi
* tm: add validation for the evlreq_mode param
-- File Changes --
M src/modules/tm/config.h (10)
M src/modules/tm/t_reply.c (60)
M src/modules/tm/tm.c (6)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4343.patchhttps://github.com/kamailio/kamailio/pull/4343.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4343
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/4343(a)github.com>
rnt-stephsav created an issue (kamailio/kamailio#4342)
Hello, on P-CSCF when running we have 200+ permanent connection to postgres db, even if there is no traffic. Is there a way to manage connections dynamically using a pool like using PgBouncer ?
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/4342
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/issues/4342(a)github.com>