summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-03-31 05:23:09 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-05-31 16:12:14 +0000
commit36c7b33ccc66eee29efa98120e00952532c8e122 (patch)
tree13b207fdb20dca1a0dd78ed8441c70178351e424 /include
parent72696040dfac41512c672f71f2b3712656641a7f (diff)
GSUP: introduce new messages for SS/USSD payloads
In order to be able to transfer SS/USSD messages via GSUP, this change introduces the following new message types: - OSMO_GSUP_MSGT_PROC_SS_*, and the following new IE: - OSMO_GSUP_SS_INFO_IE which represents an ASN.1 encoded MAP payload coming to/from the mobile station 'as is', without any transcoding. Change-Id: Ie17a78043a35fffbdd59e80fd2b2da39cce5e532 Related: OS#1597
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/gsm/gsup.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h
index 5f456991..dd274934 100644
--- a/include/osmocom/gsm/gsup.h
+++ b/include/osmocom/gsm/gsup.h
@@ -85,6 +85,9 @@ enum osmo_gsup_iei {
OSMO_GSUP_SESSION_ID_IE = 0x30,
OSMO_GSUP_SESSION_STATE_IE = 0x31,
+
+ /*! Supplementary Services payload */
+ OSMO_GSUP_SS_INFO_IE = 0x35,
};
/*! GSUP message type */
@@ -114,6 +117,10 @@ enum osmo_gsup_message_type {
OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST = 0b00011100,
OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR = 0b00011101,
OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT = 0b00011110,
+
+ OSMO_GSUP_MSGT_PROC_SS_REQUEST = 0b00100000,
+ OSMO_GSUP_MSGT_PROC_SS_ERROR = 0b00100001,
+ OSMO_GSUP_MSGT_PROC_SS_RESULT = 0b00100010,
};
#define OSMO_GSUP_IS_MSGT_REQUEST(msgt) (((msgt) & 0b00000011) == 0b00)
@@ -197,6 +204,10 @@ struct osmo_gsup_message {
/*! Unique session identifier and origination flag.
* Encoded only when \ref session_state != 0x00 */
uint32_t session_id;
+
+ /*! ASN.1 encoded MAP payload for Supplementary Services */
+ uint8_t *ss_info;
+ size_t ss_info_len;
};
int osmo_gsup_decode(const uint8_t *data, size_t data_len,