jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmocom-bb/+/34865?usp=email )
Change subject: ASCI: Use correct mobile identiy in TALKER INDICATION message ......................................................................
ASCI: Use correct mobile identiy in TALKER INDICATION message
Use TMSI only if valid in the current location area. If the MS moves to a different location area and joins a group call before location update, TMSI is not valid. Then use IMSI instead. If no IMSI/TSMI is available, send mobile identity without IMSI/TMSI.
Change-Id: I299604a0e12d91e9133b70757826ac9637da0e3e Related: OS#5364 --- M src/host/layer23/src/mobile/gsm48_rr.c 1 file changed, 29 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/65/34865/1
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 3200412..b898090 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -2085,6 +2085,8 @@ static int gsm48_rr_tx_talker_indication(struct osmocom_ms *ms) { struct gsm48_rrlayer *rr = &ms->rrlayer; + struct gsm_subscriber *subscr = &ms->subscr; + struct gsm322_cellsel *cs = &ms->cellsel; struct msgb *nmsg; struct gsm48_hdr *gh; struct gsm48_talker_indication *ti; @@ -2103,8 +2105,18 @@ /* classmark 2 */ ti->cm2_len = sizeof(ti->cm2); gsm48_rr_enc_cm2(ms, &ti->cm2, rr->cd_now.arfcn); - /* mobile identity (Use TMSI if available.) */ - gsm48_encode_mi_lv(ms, nmsg, GSM_MI_TYPE_TMSI, false); + + /* mobile identity */ + if (ms->subscr.tmsi != GSM_RESERVED_TMSI && (osmo_lai_cmp(&subscr->lai, &cs->sel_cgi.lai) == 0)) { + gsm48_encode_mi_lv(ms, nmsg, GSM_MI_TYPE_TMSI, false); + LOGP(DRR, LOGL_INFO, "Sending TALKER INDICATION with TMSI.\n"); + } else if (subscr->imsi[0]) { + gsm48_encode_mi_lv(ms, nmsg, GSM_MI_TYPE_IMSI, false); + LOGP(DRR, LOGL_INFO, "Sending TALKER INDICATION with IMSI.\n"); + } else { + gsm48_encode_mi_lv(ms, nmsg, GSM_MI_TYPE_NONE, false); + LOGP(DRR, LOGL_INFO, "Sending TALKER INDICATION without TMSI/IMSI.\n"); + }
/* start establishmnet */ return gsm48_send_rsl(ms, RSL_MT_EST_REQ, nmsg, 0);