<!-- 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] Code is formatted with `clang-format` using the config file
`.clang-format`
from source code folder
- [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 -->
###Features added
1. Device-specific call routing (GRUU) — The proxy can route calls to one
specific phone or app on a user’s account, instead of ringing every registered
device. Standards: RFC 5627, 3GPP TS 24.229, 3GPP TS 23.228
2. Multiple phone numbers per user — Supports IMS users who have several public
identities (e.g. a SIP address and a mobile number). Calls to any of those
identities find the right registration. Standards: 3GPP TS 23.228, 3GPP TS
23.003, 3GPP TS 24.229, RFC 3966
3. Barred identity handling — Remembers which identities are “barred” (not
allowed for certain services) and keeps that list updated when the network
sends notifications. Standards: 3GPP TS 24.229, 3GPP TS 23.008, RFC 3680
4. Reliable return path to the user — Stores the routing path from registration
so the proxy can reach the user correctly when someone calls them
(mobile-terminated traffic).Standards: RFC 3327, 3GPP TS 24.229,RFC 3608
5. Survives restarts — GRUU and related registration data are saved in the
database, so registrations are not lost after a server restart or reload. 3GPP
TS 23.228, 3GPP TS 24.229, 3GPP TS 33.203
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/4784
-- Commit Summary --
* lib: srdb1 - add GRUU fields to pcscf location schema
* ims_usrloc_pcscf: GRUU storage, multi-IMPU lookup and path persistence
* ims_registrar_pcscf: GRUU lookup, NOTIFY sync and Path write-back
* test: add P-CSCF GRUU verification tests [skip ci]
* ims_registrar_pcscf: restore admin XML docs removed by mistake
-- File Changes --
M .gitignore (2)
M src/lib/srdb1/schema/kamailio-ims_usrloc_pcscf.xml (1)
M src/lib/srdb1/schema/location_pcscf.xml (38)
A src/lib/srdb1/schema/pcscf_temp_gruu_history.xml (69)
M src/modules/ims_registrar_pcscf/doc/ims_registrar_pcscf_admin.xml (49)
A src/modules/ims_registrar_pcscf/gruu.c (243)
A src/modules/ims_registrar_pcscf/gruu.h (38)
M src/modules/ims_registrar_pcscf/ims_registrar_pcscf_mod.c (10)
M src/modules/ims_registrar_pcscf/ims_registrar_pcscf_mod.h (1)
M src/modules/ims_registrar_pcscf/notify.c (285)
A src/modules/ims_registrar_pcscf/path.c (51)
A src/modules/ims_registrar_pcscf/path.h (11)
M src/modules/ims_registrar_pcscf/save.c (47)
A src/modules/ims_usrloc_pcscf/impu_match.c (62)
A src/modules/ims_usrloc_pcscf/impu_match.h (27)
M src/modules/ims_usrloc_pcscf/ims_usrloc_pcscf_mod.c (3)
M src/modules/ims_usrloc_pcscf/pcontact.c (20)
A src/modules/ims_usrloc_pcscf/pcontact_index.c (342)
A src/modules/ims_usrloc_pcscf/pcontact_index.h (56)
A src/modules/ims_usrloc_pcscf/pcontact_serialize.c (87)
A src/modules/ims_usrloc_pcscf/pcontact_serialize.h (11)
A src/modules/ims_usrloc_pcscf/pcscf_db_layout.h (16)
A src/modules/ims_usrloc_pcscf/timer.c (17)
M src/modules/ims_usrloc_pcscf/udomain.c (534)
M src/modules/ims_usrloc_pcscf/udomain.h (8)
M src/modules/ims_usrloc_pcscf/ul_rpc.c (146)
M src/modules/ims_usrloc_pcscf/usrloc.c (6)
M src/modules/ims_usrloc_pcscf/usrloc.h (28)
M src/modules/ims_usrloc_pcscf/usrloc_db.c (236)
M src/modules/ims_usrloc_pcscf/usrloc_db.h (20)
A test/modules/ims_registrar_pcscf/.gitignore (8)
A test/modules/ims_registrar_pcscf/Makefile (24)
A test/modules/ims_registrar_pcscf/integrate_gruu.sh (126)
A test/modules/ims_registrar_pcscf/kamailio_gruu_e2e.cfg (54)
A test/modules/ims_registrar_pcscf/sipp/invite_gruu.xml (32)
A test/modules/ims_registrar_pcscf/sipp/register_gruu.xml (22)
A test/modules/ims_registrar_pcscf/test_common.h (47)
A test/modules/ims_registrar_pcscf/test_gruu_extract.c (164)
A test/modules/ims_registrar_pcscf/test_path_build.c (37)
A test/modules/ims_usrloc_pcscf/.gitignore (12)
A test/modules/ims_usrloc_pcscf/Makefile (30)
A test/modules/ims_usrloc_pcscf/integrate_sqlite.sh (192)
A test/modules/ims_usrloc_pcscf/kamailio_integ.cfg (33)
A test/modules/ims_usrloc_pcscf/kamailio_nodb.cfg (28)
A test/modules/ims_usrloc_pcscf/sql/seed_gruu.sql (46)
A test/modules/ims_usrloc_pcscf/test_common.h (22)
A test/modules/ims_usrloc_pcscf/test_db_layout.c (24)
A test/modules/ims_usrloc_pcscf/test_impu_match.c (114)
A test/modules/ims_usrloc_pcscf/test_parse_uri_stub.c (43)
A test/modules/ims_usrloc_pcscf/test_pcontact_index.c (63)
A test/modules/ims_usrloc_pcscf/test_pcontact_serialize.c (90)
A test/modules/ims_usrloc_pcscf/test_temp_gruu_lru.c (66)
A test/modules/verify_gruu.sh (31)
M utils/kamctl/db_redis/kamailio/pcscf_location (4)
A utils/kamctl/db_redis/kamailio/pcscf_temp_gruu_history (2)
M utils/kamctl/db_sqlite/ims_usrloc_pcscf-create.sql (23)
M utils/kamctl/dbtext/kamailio/pcscf_location (2)
A utils/kamctl/dbtext/kamailio/pcscf_temp_gruu_history (2)
M utils/kamctl/mongodb/kamailio/pcscf_location.json (24)
A utils/kamctl/mongodb/kamailio/pcscf_temp_gruu_history.json (31)
M utils/kamctl/mysql/ims_usrloc_pcscf-create.sql (23)
M utils/kamctl/oracle/ims_usrloc_pcscf-create.sql (31)
M utils/kamctl/postgres/ims_usrloc_pcscf-create.sql (23)
M utils/kamctl/xhttp_pi/ims_usrloc_pcscf-mod (56)
M utils/kamctl/xhttp_pi/ims_usrloc_pcscf-table (14)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/4784.patch
https://github.com/kamailio/kamailio/pull/4784.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/4784
You are receiving this because you are subscribed to this thread.
Message ID: <kamailio/kamailio/pull/[email protected]>
_______________________________________________
Kamailio - Development Mailing List -- [email protected]
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the
sender!