From 135f7b5e2114617b0bc408175ec146d248d01d3a Mon Sep 17 00:00:00 2001 From: Kamailio Dev Date: Mon, 20 Mar 2023 11:01:25 +0100 Subject: [PATCH] modules: readme files regenerated - ims_registrar_pcscf ... [skip ci] --- src/modules/ims_registrar_pcscf/README | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/modules/ims_registrar_pcscf/README b/src/modules/ims_registrar_pcscf/README index 3bfb0e60037..02327a005cf 100644 --- a/src/modules/ims_registrar_pcscf/README +++ b/src/modules/ims_registrar_pcscf/README @@ -312,6 +312,33 @@ pcscf_save("location"); * domain - Logical domain within the registrar. If a database is used then this must be name of the table which stores the contacts. + The return code may have the following values: + * ( 1) OK + * (-1) Parsing of contact data failed + * (-2) Deregistration in progress + + For db_mode = DB_ONLY (3) setting for ims_usrloc_pcscf module modparam + following logic is implemented: + * To avoid race time conditions between a REREGISTER and the expiry + handler state machine in the scscf an approach is chosen to refuse + a REREGISTER in time window of 20 seconds after pcontact expiry on + the pcscf (thus allowing expiry handling to finish). REREGISTER is + refused in this scenario with return code -2. + * In case a REREGISTER arrives at pcscf and the respective pcontact + is expired longer than time window of 20 seconds registration also + is refused with return code -2 and additionaly PUBLISH is sent to + scscf with expiry = 0. + * The rc -2 shall be handled in register.cfg script as follows: + pcscf_save_pending("location"); + switch ($retcode) { + case -1: + ....... + case -2: + send_reply("500", "Deregister in progress - Please try again"); + exit; + break; + } + 4.3. pcscf_follows_service_routes(domain) Returns true, if the request is following the "learned" service-routes