libosmogsm  0.10.2.279.178b
Osmocom GSM library
gsm0480.h
Go to the documentation of this file.
1 
3 #pragma once
4 
5 #include <osmocom/core/defs.h>
6 #include <osmocom/core/msgb.h>
9 
15 #define GSM0480_USSD_OCTET_STRING_LEN 160
16 
23 #define GSM0480_USSD_7BIT_STRING_LEN 182
24 
30 #define MAX_LEN_USSD_STRING 31
31 
32 /* deprecated */
33 struct ussd_request {
35  uint8_t transaction_id;
36  uint8_t invoke_id;
37 };
38 
39 /* deprecated */
40 int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len,
41  struct ussd_request *request) OSMO_DEPRECATED("Use gsm0480_decode_ss_request() instead");
42 
47 struct ss_request {
52  uint8_t opcode;
58  uint8_t ss_code;
59 
67  uint8_t ussd_text[GSM0480_USSD_OCTET_STRING_LEN];
68 
77  uint8_t ussd_data[GSM0480_USSD_OCTET_STRING_LEN];
78  uint8_t ussd_data_len; /* Length in bytes */
79  uint8_t ussd_data_dcs; /* Data Coding Scheme */
80 
85  uint8_t transaction_id;
91  uint8_t invoke_id;
92 };
93 
94 int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len,
95  struct ss_request *request);
96 
97 struct msgb *gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const char *text);
98 struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text);
99 struct msgb *gsm0480_create_notifySS(const char *text);
100 struct msgb *gsm0480_create_ussd_notify(int level, const char *text);
102 
103 int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id);
104 int gsm0480_wrap_facility(struct msgb *msg);
105 
106 struct gsm48_hdr *gsm0480_l3hdr_push(struct msgb *msg, uint8_t proto_discr,
107  uint8_t msg_type);
uint8_t msg_type
Definition: gsm_04_08.h:504
This structure represents some meaningful parts of a decoded and/or to be encoded GSM 04...
Definition: gsm0480.h:47
struct msgb * gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text)
Definition: gsm0480.c:86
Definition: gsm_04_08.h:649
struct msgb * gsm0480_create_notifySS(const char *text)
Definition: gsm0480.c:127
int gsm0480_wrap_facility(struct msgb *msg)
Definition: gsm0480.c:79
#define OSMO_DEPRECATED(text)
struct gsm48_hdr * gsm0480_l3hdr_push(struct msgb *msg, uint8_t proto_discr, uint8_t msg_type)
Definition: gsm0480.c:700
struct msgb * gsm0480_create_ussd_release_complete(void)
Definition: gsm0480.c:725
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")
Definition: gsm0480.c:218
uint8_t opcode
GSM TS 04.80, section 3.6.4 "Operation code" See GSM0480_OP_CODE_* for possible values.
Definition: gsm0480.h:52
struct msgb * gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const char *text)
Definition: gsm0480.c:652
uint8_t invoke_id
Definition: gsm0480.h:36
#define GSM0480_USSD_OCTET_STRING_LEN
According to the GSM 04.80 (version 5.0.0) specification Annex A "Expanded ASN.1 Module "SS-Protocol"...
Definition: gsm0480.h:15
uint8_t link_id
Definition: gsm_08_08.h:453
GSM TS 04.80 definitions (Supplementary Services Specification, Formats and Coding).
int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id)
Definition: gsm0480.c:64
GSM TS 04.08 definitions.
uint8_t proto_discr
Definition: gsm_04_08.h:503
uint8_t transaction_id
Definition: gsm0480.h:35
uint8_t ss_code
GSM TS 04.80, section 4.4.3.9 "ss-Code" The ss-Code identifier refers to the code which identify a su...
Definition: gsm0480.h:58
Definition: gsm0480.h:33
uint8_t len
Definition: gsm_04_11.h:434
#define MAX_LEN_USSD_STRING
DEPRECATED: this definition doesn&#39;t follow any specification, so we only keep it for compatibility re...
Definition: gsm0480.h:30
char text[MAX_LEN_USSD_STRING+1]
Definition: gsm0480.h:34
int gsm0480_decode_ss_request(const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *request)
Definition: gsm0480.c:255
uint8_t ussd_data_len
Definition: gsm0480.h:78
uint8_t transaction_id
GSM TS 04.80, section 3.3 "Transaction identifier" See GSM TS 04.07, section 11.2.3 for details.
Definition: gsm0480.h:85
struct msgb * gsm0480_create_ussd_notify(int level, const char *text)
Definition: gsm0480.c:710
uint8_t ussd_data_dcs
Definition: gsm0480.h:79
uint8_t invoke_id
GSM TS 04.80, section 3.6.3 "Component ID tag" The term Component ID refers to the Invoke ID or the L...
Definition: gsm0480.h:91