aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSergey Kostanbaev <sergey.kostanbaev@gmail.com>2015-10-23 20:27:35 +0300
committerIvan Kluchnikov <kluchnikovi@gmail.com>2017-02-07 17:29:15 +0300
commitc9c4293847461391eed0e93325e8ccee82d78ca3 (patch)
tree38809c4aae1eaf78176ff858c5d4cb46d4e60113 /include
parent6b986c24228a4cc83b22e1d8aae22b94fe36e6f2 (diff)
modify USSD structures to support external handling
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/gsm/gsm0480.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h
index 6ca23e98..c4e5286b 100644
--- a/include/osmocom/gsm/gsm0480.h
+++ b/include/osmocom/gsm/gsm0480.h
@@ -5,7 +5,7 @@
#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/gsm/protocol/gsm_04_80.h>
-#define MAX_LEN_USSD_STRING 31
+#define MAX_LEN_USSD_STRING 182
/* deprecated */
struct ussd_request {
@@ -19,13 +19,24 @@ int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len,
struct ussd_request *request) OSMO_DEPRECATED("Use gsm0480_decode_ss_request() instead");
struct ss_request {
- uint8_t opcode;
- uint8_t ss_code;
+ uint8_t transaction_id; /**< L3 transaction ID */
+ uint8_t message_type; /**< Message type 2.2 */
+
+ uint8_t component_type; /**< Component type 3.6.2 */
+ uint8_t invoke_id; /**< Invoke id 3.6.3 */
+
+ union {
+ uint8_t opcode; /**< Operational code 3.6.4 */
+ uint8_t error_code; /**< Error code 3.6.6 */
+ uint8_t problem_code; /**< Problem code 3.6.7 */
+ };
+
+ uint8_t ussd_text_language;
+ uint8_t ussd_text_len;
uint8_t ussd_text[MAX_LEN_USSD_STRING + 1];
- uint8_t transaction_id;
- uint8_t invoke_id;
-};
+ uint8_t ss_code; /**< parameters of a Interrogate/Activate/DeactivateSS Request */
+};
int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len,
struct ss_request *request);