libosmogsm  0.11.0-dirty
Osmocom GSM library
src/gsm/gsm0480.c File Reference

Format functions for GSM 04.80. More...

Functions

static unsigned char * msgb_wrap_with_TL (struct msgb *msgb, uint8_t tag)
static unsigned char * msgb_push_TLV1 (struct msgb *msgb, uint8_t tag, uint8_t value)
int gsm0480_wrap_invoke (struct msgb *msg, int op, int link_id)
int gsm0480_wrap_facility (struct msgb *msg)
struct msgbgsm0480_create_unstructuredSS_Notify (int alertPattern, const char *text)
struct msgbgsm0480_create_notifySS (const char *text)
static int parse_ss (const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *req)
static int parse_ss_facility (const uint8_t *ss_facility, uint16_t len, struct ss_request *req)
static int parse_ss_info_elements (const uint8_t *ss_ie, uint16_t len, struct ss_request *req)
static int parse_facility_ie (const uint8_t *facility_ie, uint16_t length, struct ss_request *req)
static int parse_ss_invoke (const uint8_t *invoke_data, uint16_t length, struct ss_request *req)
static int parse_ss_return_result (const uint8_t *rr_data, uint16_t length, struct ss_request *req)
static int parse_process_uss_data (const uint8_t *uss_req_data, uint16_t length, struct ss_request *req)
static int parse_process_uss_req (const uint8_t *uss_req_data, uint16_t length, struct ss_request *req)
static int parse_ss_for_bs_req (const uint8_t *ss_req_data, uint16_t length, struct ss_request *req)
int gsm0480_decode_ussd_request (const struct gsm48_hdr *hdr, uint16_t len, struct ussd_request *req)
int gsm0480_decode_ss_request (const struct gsm48_hdr *hdr, uint16_t len, struct ss_request *req)
struct msgbgsm0480_create_ussd_resp (uint8_t invoke_id, uint8_t trans_id, const char *text)
struct gsm48_hdrgsm0480_l3hdr_push (struct msgb *msg, uint8_t proto_discr, uint8_t msg_type)
struct msgbgsm0480_create_ussd_notify (int level, const char *text)
struct msgbgsm0480_create_ussd_release_complete (void)

Detailed Description

Format functions for GSM 04.80.


Function Documentation

int gsm0480_decode_ss_request ( const struct gsm48_hdr hdr,
uint16_t  len,
struct ss_request req 
)

Check Protocol Discriminator see TS GSM 04.07 and GSM 04.80

References gsm48_hdr_pdisc(), GSM48_PDISC_NC_SS, LOGL_ERROR, LOGP, parse_ss(), pdisc, gsm48_hdr::proto_discr, and ss_request::transaction_id.

static unsigned char* msgb_push_TLV1 ( struct msgb msgb,
uint8_t  tag,
uint8_t  value 
) [inline, static]
static unsigned char* msgb_wrap_with_TL ( struct msgb msgb,
uint8_t  tag 
) [inline, static]
static int parse_process_uss_req ( const uint8_t *  uss_req_data,
uint16_t  length,
struct ss_request req 
) [static]

According to GSM 04.08, 4.4.2 "ASN.1 data types": the USSD-DataCodingScheme shall indicate use of the default alphabet using the 0x0F value.

References ASN1_OCTET_STRING_TAG, dcs, DLGLOBAL, GSM0480_USSD_OCTET_STRING_LEN, GSM_0480_SEQUENCE_TAG, gsm_7bit_decode_n_ussd(), LOGL_ERROR, LOGP, ss_request::ussd_data, ss_request::ussd_data_dcs, ss_request::ussd_data_len, and ss_request::ussd_text.

Referenced by parse_ss_invoke(), and parse_ss_return_result().

static int parse_ss ( const struct gsm48_hdr hdr,
uint16_t  len,
struct ss_request req 
) [static]
static int parse_ss_facility ( const uint8_t *  ss_facility,
uint16_t  len,
struct ss_request req 
) [static]

References parse_facility_ie().

Referenced by parse_ss().

static int parse_ss_for_bs_req ( const uint8_t *  ss_req_data,
uint16_t  length,
struct ss_request req 
) [static]
static int parse_ss_info_elements ( const uint8_t *  ss_ie,
uint16_t  len,
struct ss_request req 
) [static]
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines