<!-- 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!

Reply via email to