For network-initiated UE de-registration, ims_registrar_scscf
is populating the Subscription-State
header of the NOTIFY
message as active;expires=3581
instead of terminated
.
We are simulating a network-initiated UE de-registration by sending a Registration-Termination Request from the HSS to the S-CSCF for a registered IMSI.
Call Flow:
Event: reg
for the registered IMSINOTIFY
to subscribers for the IMS_REGISTRAR_CONTACT_DEREGISTERED
event (issue with the NOTIFY
SIP message)Observation:
NOTIFY
messages are initiated to subscribers of Event: reg
, but instead of having the Subscription-State
header set to terminated, we observe the value active;expires=3581.NOTIFY
SIP message packet is attached below)To reproduce this, we are performing the following steps:
SUBSCRIBE
requests from a third-party Application Server and the UE with Event: reg
to get notified of registration eventsRegistration-Termination Request
to the target S-CSCF for the registered IMSI (network-initiated de-registration)While going through the logs, we find that this header is being populated based on the expiry timer and a comparison with the current timestamp:
2025-06-20 12:45:20 | 19(56) DEBUG: ims_registrar_scscf [registrar_notify.c:1716]: create_notifications(): Expires is greater than current time! Subscription state: [active;expires=3581]
Workaround:
In the create_notifications()
method of src/modules/ims_registrar_scscf/registrar_notify.c
,
when populating the Subscription-State
header, if the event_type
is 10
(IMS_REGISTRAR_CONTACT_DEREGISTERED
), we can populate Subscription-State
as terminated
.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.