aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm/gsm48.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2023-06-26 10:21:48 +0200
committerjolly <andreas@eversberg.eu>2023-06-28 11:54:55 +0000
commite4c7b0adcd2384eaf0e018731428f3523f786c0f (patch)
tree270bd0c092ac9acf0cebd130a6a6955ddb822b98 /src/gsm/gsm48.c
parent6e7739f70972c9cd6ccb4497f4303f3686f84611 (diff)
ASCI: Add decoding of mobile identity in TALKER INDICATION
gsm48.c provides a function to decode mobile identity from various messages. TALKER INDICATION is sent by the talking subscriber of a voice group call to idenitfy the current talker. The mobile identity is required to distinguish between calling subscriber and other subscribers. Related: OS#4854 Change-Id: I331fac82e3c15abb01f554b2e70576100f2eea2d
Diffstat (limited to 'src/gsm/gsm48.c')
-rw-r--r--src/gsm/gsm48.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c
index 3ec75472..4f790261 100644
--- a/src/gsm/gsm48.c
+++ b/src/gsm/gsm48.c
@@ -955,6 +955,17 @@ int osmo_mobile_identity_decode_from_l3_buf(struct osmo_mobile_identity *mi, con
cm2_buf = (uint8_t*)&paging_response->cm2;
goto got_cm2;
+ case GSM48_MT_RR_TALKER_IND:
+ /* Check minimum size: Header + CM2 LV + minimum MI LV */
+ if (l3_len < sizeof(*gh) + 4 + 2)
+ return -EBADMSG;
+ /* CM2 shall be always 3 bytes in length */
+ if (gh->data[0] != 3)
+ return -EBADMSG;
+ cm2_len = gh->data[0];
+ cm2_buf = gh->data + 1;
+ goto got_cm2;
+
default:
break;
}