diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-01-24 12:49:34 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-01-24 14:04:46 +0000 |
commit | 37382ec2cf26ebcd70918457cb4d2b7285c52e0d (patch) | |
tree | b1424559f1598ac0187515c8a66fb4110deff5ac /src/libmsc/gsm_04_08.c | |
parent | 3995d2ea855e34bce25f1923feb416567083399f (diff) |
Reject any CM SERVICE we don't support
When we receive a CM Service Request, OsmoMSC should eventually verify
what kind of service it is the phone requests, and whether we support
that service.
Change-Id: I499730d760dc9ac7f599e09959c6eac4452f2eab
Closes: OS#2668
Diffstat (limited to 'src/libmsc/gsm_04_08.c')
-rw-r--r-- | src/libmsc/gsm_04_08.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index 90669e13c..ea40a9608 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -693,6 +693,17 @@ int gsm48_rx_mm_serv_req(struct gsm_subscriber_connection *conn, struct msgb *ms GSM48_REJECT_INCORRECT_MESSAGE); } + switch (req->cm_service_type) { + case GSM48_CMSERV_MO_CALL_PACKET: + case GSM48_CMSERV_EMERGENCY: + case GSM48_CMSERV_SMS: + case GSM48_CMSERV_SUP_SERV: + /* continue below */ + break; + default: + return msc_gsm48_tx_mm_serv_rej(conn, GSM48_REJECT_SRV_OPT_NOT_SUPPORTED); + } + osmo_signal_dispatch(SS_SUBSCR, S_SUBSCR_IDENTITY, (classmark2 + classmark2_len)); memcpy(conn->classmark.classmark2, classmark2, classmark2_len); conn->classmark.classmark2_len = classmark2_len; |