lynxis lazus has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-msc/+/38488?usp=email )
Change subject: WIP: vlr: extend the subscriber invalidate callback with reasons
......................................................................
WIP: vlr: extend the subscriber invalidate callback with reasons
The VLR must be allowed to notify the MSC if an subscriber becomes invalid.
There are multiple cases when this happens:
a) if the subscriber didn't do a Location Update Procedure within the
given periodic timer.
b) if the HLR do a Cancel Location Procedure with reason withdraw
c) if the HLR do a Cancel Location Procedure with reason update location.
Only in case b) must the user informed with the cause code by the HLR.
For c) the MSC must inform the MS about the reason.
FIXME: check case a) what must be done. Do we really need to inform the user?
Change-Id: Ie5b687318b106a230fcee52deba86649641004b3
---
M include/osmocom/vlr/vlr.h
M src/libmsc/gsm_04_08.c
M src/libvlr/vlr.c
3 files changed, 5 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/88/38488/1
diff --git a/include/osmocom/vlr/vlr.h b/include/osmocom/vlr/vlr.h
index ed6438b..e99a1e2 100644
--- a/include/osmocom/vlr/vlr.h
+++ b/include/osmocom/vlr/vlr.h
@@ -251,7 +251,8 @@
* with this msc_conn_ref */
int (*subscr_assoc)(void *msc_conn_ref, struct vlr_subscr *vsub);
/* notify MSC that the given subscriber is no longer valid */
- void (*subscr_inval)(void *msc_conn_ref, struct vlr_subscr *vsub);
+ void (*subscr_inval)(void *msc_conn_ref, struct vlr_subscr *vsub,
+ enum gsm48_reject_value cause, bool cancel_by_update);
};
/* An instance of the VLR codebase */
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index d9e0b5f..7249fc7 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -1572,7 +1572,8 @@
return 0;
}
-static void msc_vlr_subscr_inval(void *msc_conn_ref, struct vlr_subscr *vsub)
+static void msc_vlr_subscr_inval(void *msc_conn_ref, struct vlr_subscr *vsub,
+ enum gsm48_reject_value cause, bool cancel_by_update)
{
/* Search vsub backwards to make sure msc_conn_ref is a valid msc_a instance. */
struct msub *msub;
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index b924f81..a4b0887 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -628,7 +628,7 @@
exists->imsi);
if (vlr->ops.subscr_inval)
- vlr->ops.subscr_inval(exists->msc_conn_ref, exists);
+ vlr->ops.subscr_inval(exists->msc_conn_ref, exists, 0, true);
vlr_subscr_free(exists);
}
--
To view, visit
https://gerrit.osmocom.org/c/osmo-msc/+/38488?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: Ie5b687318b106a230fcee52deba86649641004b3
Gerrit-Change-Number: 38488
Gerrit-PatchSet: 1
Gerrit-Owner: lynxis lazus <lynxis(a)fe80.eu>