libosmogsm  1.9.0.13-1584.202310162026
Osmocom GSM library
gsm_04_11.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  gsm411_rp_hdr
 

Macros

#define GSM411_PDISC_SMS   0x09
 
#define GSM411_MT_CP_DATA   0x01
 
#define GSM411_MT_CP_ACK   0x04
 
#define GSM411_MT_CP_ERROR   0x10
 
#define GSM411_MT_RP_DATA_MO   0x00
 
#define GSM411_MT_RP_DATA_MT   0x01
 
#define GSM411_MT_RP_ACK_MO   0x02
 
#define GSM411_MT_RP_ACK_MT   0x03
 
#define GSM411_MT_RP_ERROR_MO   0x04
 
#define GSM411_MT_RP_ERROR_MT   0x05
 
#define GSM411_MT_RP_SMMA_MO   0x06
 
#define GSM411_SMSC_ADDR_MIN_OCTETS   2
 
#define GSM411_SMSC_ADDR_MAX_OCTETS   11
 
#define GSM411_SMSC_ADDR_MIN_DIGITS   1
 
#define GSM411_SMSC_ADDR_MAX_DIGITS   20
 
#define GSM411_TMR_TR1M   40, 0 /* 35 < x < 45 seconds */
 
#define GSM411_TMR_TRAM   30, 0 /* 25 < x < 35 seconds */
 
#define GSM411_TMR_TR2M   15, 0 /* 12 < x < 20 seconds */
 
#define GSM411_TMR_TC1A   30, 0 /* TR1M - 10 */
 
#define GSM411_TMR_TC1A_SEC   30 /* TR1M - 10 */
 
#define GSM340_SMS_DELIVER_SC2MS   0x00
 
#define GSM340_SMS_DELIVER_REP_MS2SC   0x00
 
#define GSM340_SMS_STATUS_REP_SC2MS   0x02
 
#define GSM340_SMS_COMMAND_MS2SC   0x02
 
#define GSM340_SMS_SUBMIT_MS2SC   0x01
 
#define GSM340_SMS_SUBMIT_REP_SC2MS   0x01
 
#define GSM340_SMS_RESERVED   0x03
 
#define GSM340_TP_MMS_MORE   0
 
#define GSM340_TP_MMS_NO_MORE   1
 
#define GSM340_TP_VPF_NONE   0
 
#define GSM340_TP_VPF_RELATIVE   2
 
#define GSM340_TP_VPF_ENHANCED   1
 
#define GSM340_TP_VPF_ABSOLUTE   3
 
#define GSM340_TP_SRI_NONE   0
 
#define GSM340_TP_SRI_PRESENT   1
 
#define GSM340_TP_SRR_NONE   0
 
#define GSM340_TP_SRR_REQUESTED   1
 
#define GSM340_TP_PID_IMPLICIT   0x00
 
#define GSM340_TP_PID_TELEX   0x01
 
#define GSM340_TP_PID_FAX_G3   0x02
 
#define GSM340_TP_PID_FAX_G4   0x03
 
#define GSM340_TP_PID_VOICE   0x04
 
#define GSM430_TP_PID_ERMES   0x05
 
#define GSM430_TP_PID_NATIONAL_PAGING   0x06
 
#define GSM430_TP_PID_VIDEOTEX   0x07
 
#define GSM430_TP_PID_TELETEX_UNSPEC   0x08
 
#define GSM430_TP_PID_TELETEX_PSPDN   0x09
 
#define GSM430_TP_PID_TELETEX_CSPDN   0x0a
 
#define GSM430_TP_PID_TELETEX_PSTN   0x0b
 
#define GSM430_TP_PID_TELETEX_ISDN   0x0c
 
#define GSM430_TP_PID_TELETEX_UCI   0x0d
 
#define GSM430_TP_PID_MSG_HANDLING   0x10
 
#define GSM430_TP_PID_MSG_X400   0x11
 
#define GSM430_TP_PID_EMAIL   0x12
 
#define GSM430_TP_PID_GSM_MS   0x1f
 
#define GSM430_TP_PID_SMS_TYPE_0   0
 
#define GSM430_TP_PID_SMS_TYPE_1   1
 
#define GSM430_TP_PID_SMS_TYPE_2   2
 
#define GSM430_TP_PID_SMS_TYPE_3   3
 
#define GSM430_TP_PID_SMS_TYPE_4   4
 
#define GSM430_TP_PID_SMS_TYPE_5   5
 
#define GSM430_TP_PID_SMS_TYPE_6   6
 
#define GSM430_TP_PID_SMS_TYPE_7   7
 
#define GSM430_TP_PID_RETURN_CALL_MSG   0x1f
 
#define GSM430_TP_PID_ME_DATA_DNLOAD   0x3d
 
#define GSM430_TP_PID_ME_DE_PERSONAL   0x3e
 
#define GSM430_TP_PID_ME_SIM_DNLOAD   0x3f
 
#define GSM338_DCS_00_
 
#define GSM338_DCS_1110_7BIT   (0 << 2)
 
#define GSM338_DCS_1111_7BIT   (0 << 2)
 
#define GSM338_DCS_1111_8BIT_DATA   (1 << 2)
 
#define GSM338_DCS_1111_CLASS0   0
 
#define GSM338_DCS_1111_CLASS1_ME   1
 
#define GSM338_DCS_1111_CLASS2_SIM   2
 
#define GSM338_DCS_1111_CLASS3_TE   3 /* See TS 07.05 */
 

Enumerations

enum  gsm411_cp_state {
  GSM411_CPS_IDLE = 0,
  GSM411_CPS_MM_CONN_PENDING = 1,
  GSM411_CPS_WAIT_CP_ACK = 2,
  GSM411_CPS_MM_ESTABLISHED = 3
}
 
enum  gsm411_rp_state {
  GSM411_RPS_IDLE = 0,
  GSM411_RPS_WAIT_FOR_RP_ACK = 1,
  GSM411_RPS_WAIT_TO_TX_RP_ACK = 3,
  GSM411_RPS_WAIT_FOR_RETRANS_T = 4
}
 
enum  gsm411_cp_ie {
  GSM411_CP_IE_USER_DATA = 0x01,
  GSM411_CP_IE_CAUSE = 0x02
}
 
enum  gsm411_cp_cause {
  GSM411_CP_CAUSE_NET_FAIL = 17,
  GSM411_CP_CAUSE_CONGESTION = 22,
  GSM411_CP_CAUSE_INV_TRANS_ID = 81,
  GSM411_CP_CAUSE_SEMANT_INC_MSG = 95,
  GSM411_CP_CAUSE_INV_MAND_INF = 96,
  GSM411_CP_CAUSE_MSGTYPE_NOTEXIST = 97,
  GSM411_CP_CAUSE_MSG_INCOMP_STATE = 98,
  GSM411_CP_CAUSE_IE_NOTEXIST = 99,
  GSM411_CP_CAUSE_PROTOCOL_ERR = 111
}
 
enum  gsm411_rp_ie {
  GSM411_IE_RP_USER_DATA = 0x41,
  GSM411_IE_RP_CAUSE = 0x42
}
 
enum  gsm411_rp_cause {
  GSM411_RP_CAUSE_MO_NUM_UNASSIGNED = 1,
  GSM411_RP_CAUSE_MO_OP_DET_BARR = 8,
  GSM411_RP_CAUSE_MO_CALL_BARRED = 10,
  GSM411_RP_CAUSE_MO_SMS_REJECTED = 21,
  GSM411_RP_CAUSE_MO_DEST_OUT_OF_ORDER = 27,
  GSM411_RP_CAUSE_MO_UNIDENTIFIED_SUBSCR = 28,
  GSM411_RP_CAUSE_MO_FACILITY_REJ = 29,
  GSM411_RP_CAUSE_MO_UNKNOWN_SUBSCR = 30,
  GSM411_RP_CAUSE_MO_NET_OUT_OF_ORDER = 38,
  GSM411_RP_CAUSE_MO_TEMP_FAIL = 41,
  GSM411_RP_CAUSE_MO_CONGESTION = 42,
  GSM411_RP_CAUSE_MO_RES_UNAVAIL = 47,
  GSM411_RP_CAUSE_MO_REQ_FAC_NOTSUBSCR = 50,
  GSM411_RP_CAUSE_MO_REQ_FAC_NOTIMPL = 69,
  GSM411_RP_CAUSE_MO_INTERWORKING = 127,
  GSM411_RP_CAUSE_MT_MEM_EXCEEDED = 22,
  GSM411_RP_CAUSE_INV_TRANS_REF = 81,
  GSM411_RP_CAUSE_SEMANT_INC_MSG = 95,
  GSM411_RP_CAUSE_INV_MAND_INF = 96,
  GSM411_RP_CAUSE_MSGTYPE_NOTEXIST = 97,
  GSM411_RP_CAUSE_MSG_INCOMP_STATE = 98,
  GSM411_RP_CAUSE_IE_NOTEXIST = 99,
  GSM411_RP_CAUSE_PROTOCOL_ERR = 111
}
 
enum  sms_alphabet {
  DCS_NONE,
  DCS_7BIT_DEFAULT,
  DCS_UCS2,
  DCS_8BIT_DATA
}
 

Functions

struct gsm411_rp_hdr __attribute__ ((packed))
 

Variables

uint8_t len
 
uint8_t msg_type
 
uint8_t msg_ref
 
uint8_t data [0]
 
enum sms_alphabet __attribute__
 

Macro Definition Documentation

◆ GSM338_DCS_00_

#define GSM338_DCS_00_

◆ GSM338_DCS_1110_7BIT

#define GSM338_DCS_1110_7BIT   (0 << 2)

◆ GSM338_DCS_1111_7BIT

#define GSM338_DCS_1111_7BIT   (0 << 2)

◆ GSM338_DCS_1111_8BIT_DATA

#define GSM338_DCS_1111_8BIT_DATA   (1 << 2)

◆ GSM338_DCS_1111_CLASS0

#define GSM338_DCS_1111_CLASS0   0

◆ GSM338_DCS_1111_CLASS1_ME

#define GSM338_DCS_1111_CLASS1_ME   1

◆ GSM338_DCS_1111_CLASS2_SIM

#define GSM338_DCS_1111_CLASS2_SIM   2

◆ GSM338_DCS_1111_CLASS3_TE

#define GSM338_DCS_1111_CLASS3_TE   3 /* See TS 07.05 */

◆ GSM340_SMS_COMMAND_MS2SC

#define GSM340_SMS_COMMAND_MS2SC   0x02

◆ GSM340_SMS_DELIVER_REP_MS2SC

#define GSM340_SMS_DELIVER_REP_MS2SC   0x00

◆ GSM340_SMS_DELIVER_SC2MS

#define GSM340_SMS_DELIVER_SC2MS   0x00

◆ GSM340_SMS_RESERVED

#define GSM340_SMS_RESERVED   0x03

◆ GSM340_SMS_STATUS_REP_SC2MS

#define GSM340_SMS_STATUS_REP_SC2MS   0x02

◆ GSM340_SMS_SUBMIT_MS2SC

#define GSM340_SMS_SUBMIT_MS2SC   0x01

◆ GSM340_SMS_SUBMIT_REP_SC2MS

#define GSM340_SMS_SUBMIT_REP_SC2MS   0x01

◆ GSM340_TP_MMS_MORE

#define GSM340_TP_MMS_MORE   0

◆ GSM340_TP_MMS_NO_MORE

#define GSM340_TP_MMS_NO_MORE   1

◆ GSM340_TP_PID_FAX_G3

#define GSM340_TP_PID_FAX_G3   0x02

◆ GSM340_TP_PID_FAX_G4

#define GSM340_TP_PID_FAX_G4   0x03

◆ GSM340_TP_PID_IMPLICIT

#define GSM340_TP_PID_IMPLICIT   0x00

◆ GSM340_TP_PID_TELEX

#define GSM340_TP_PID_TELEX   0x01

◆ GSM340_TP_PID_VOICE

#define GSM340_TP_PID_VOICE   0x04

◆ GSM340_TP_SRI_NONE

#define GSM340_TP_SRI_NONE   0

◆ GSM340_TP_SRI_PRESENT

#define GSM340_TP_SRI_PRESENT   1

◆ GSM340_TP_SRR_NONE

#define GSM340_TP_SRR_NONE   0

◆ GSM340_TP_SRR_REQUESTED

#define GSM340_TP_SRR_REQUESTED   1

◆ GSM340_TP_VPF_ABSOLUTE

#define GSM340_TP_VPF_ABSOLUTE   3

Referenced by gsm340_validity_period().

◆ GSM340_TP_VPF_ENHANCED

#define GSM340_TP_VPF_ENHANCED   1

Referenced by gsm340_validity_period().

◆ GSM340_TP_VPF_NONE

#define GSM340_TP_VPF_NONE   0

Referenced by gsm340_validity_period().

◆ GSM340_TP_VPF_RELATIVE

#define GSM340_TP_VPF_RELATIVE   2

Referenced by gsm340_validity_period().

◆ GSM411_MT_CP_ACK

#define GSM411_MT_CP_ACK   0x04

Referenced by gsm411_mmsms_cp_data().

◆ GSM411_MT_CP_DATA

#define GSM411_MT_CP_DATA   0x01

Referenced by gsm411_mmsms_send_msg().

◆ GSM411_MT_CP_ERROR

#define GSM411_MT_CP_ERROR   0x10

◆ GSM411_MT_RP_ACK_MO

#define GSM411_MT_RP_ACK_MO   0x02

◆ GSM411_MT_RP_ACK_MT

#define GSM411_MT_RP_ACK_MT   0x03

◆ GSM411_MT_RP_DATA_MO

#define GSM411_MT_RP_DATA_MO   0x00

Referenced by gsm411_mnsms_est_ind().

◆ GSM411_MT_RP_DATA_MT

#define GSM411_MT_RP_DATA_MT   0x01

Referenced by gsm411_mnsms_est_ind().

◆ GSM411_MT_RP_ERROR_MO

#define GSM411_MT_RP_ERROR_MO   0x04

◆ GSM411_MT_RP_ERROR_MT

#define GSM411_MT_RP_ERROR_MT   0x05

◆ GSM411_MT_RP_SMMA_MO

#define GSM411_MT_RP_SMMA_MO   0x06

Referenced by gsm411_mnsms_est_ind().

◆ GSM411_PDISC_SMS

#define GSM411_PDISC_SMS   0x09

◆ GSM411_SMSC_ADDR_MAX_DIGITS

#define GSM411_SMSC_ADDR_MAX_DIGITS   20

◆ GSM411_SMSC_ADDR_MAX_OCTETS

#define GSM411_SMSC_ADDR_MAX_OCTETS   11

◆ GSM411_SMSC_ADDR_MIN_DIGITS

#define GSM411_SMSC_ADDR_MIN_DIGITS   1

◆ GSM411_SMSC_ADDR_MIN_OCTETS

#define GSM411_SMSC_ADDR_MIN_OCTETS   2

◆ GSM411_TMR_TC1A

#define GSM411_TMR_TC1A   30, 0 /* TR1M - 10 */

◆ GSM411_TMR_TC1A_SEC

#define GSM411_TMR_TC1A_SEC   30 /* TR1M - 10 */

Referenced by gsm411_smc_init().

◆ GSM411_TMR_TR1M

#define GSM411_TMR_TR1M   40, 0 /* 35 < x < 45 seconds */

Referenced by gsm411_rl_data_req().

◆ GSM411_TMR_TR2M

#define GSM411_TMR_TR2M   15, 0 /* 12 < x < 20 seconds */

Referenced by gsm411_mnsms_est_ind().

◆ GSM411_TMR_TRAM

#define GSM411_TMR_TRAM   30, 0 /* 25 < x < 35 seconds */

◆ GSM430_TP_PID_EMAIL

#define GSM430_TP_PID_EMAIL   0x12

◆ GSM430_TP_PID_ERMES

#define GSM430_TP_PID_ERMES   0x05

◆ GSM430_TP_PID_GSM_MS

#define GSM430_TP_PID_GSM_MS   0x1f

◆ GSM430_TP_PID_ME_DATA_DNLOAD

#define GSM430_TP_PID_ME_DATA_DNLOAD   0x3d

◆ GSM430_TP_PID_ME_DE_PERSONAL

#define GSM430_TP_PID_ME_DE_PERSONAL   0x3e

◆ GSM430_TP_PID_ME_SIM_DNLOAD

#define GSM430_TP_PID_ME_SIM_DNLOAD   0x3f

◆ GSM430_TP_PID_MSG_HANDLING

#define GSM430_TP_PID_MSG_HANDLING   0x10

◆ GSM430_TP_PID_MSG_X400

#define GSM430_TP_PID_MSG_X400   0x11

◆ GSM430_TP_PID_NATIONAL_PAGING

#define GSM430_TP_PID_NATIONAL_PAGING   0x06

◆ GSM430_TP_PID_RETURN_CALL_MSG

#define GSM430_TP_PID_RETURN_CALL_MSG   0x1f

◆ GSM430_TP_PID_SMS_TYPE_0

#define GSM430_TP_PID_SMS_TYPE_0   0

◆ GSM430_TP_PID_SMS_TYPE_1

#define GSM430_TP_PID_SMS_TYPE_1   1

◆ GSM430_TP_PID_SMS_TYPE_2

#define GSM430_TP_PID_SMS_TYPE_2   2

◆ GSM430_TP_PID_SMS_TYPE_3

#define GSM430_TP_PID_SMS_TYPE_3   3

◆ GSM430_TP_PID_SMS_TYPE_4

#define GSM430_TP_PID_SMS_TYPE_4   4

◆ GSM430_TP_PID_SMS_TYPE_5

#define GSM430_TP_PID_SMS_TYPE_5   5

◆ GSM430_TP_PID_SMS_TYPE_6

#define GSM430_TP_PID_SMS_TYPE_6   6

◆ GSM430_TP_PID_SMS_TYPE_7

#define GSM430_TP_PID_SMS_TYPE_7   7

◆ GSM430_TP_PID_TELETEX_CSPDN

#define GSM430_TP_PID_TELETEX_CSPDN   0x0a

◆ GSM430_TP_PID_TELETEX_ISDN

#define GSM430_TP_PID_TELETEX_ISDN   0x0c

◆ GSM430_TP_PID_TELETEX_PSPDN

#define GSM430_TP_PID_TELETEX_PSPDN   0x09

◆ GSM430_TP_PID_TELETEX_PSTN

#define GSM430_TP_PID_TELETEX_PSTN   0x0b

◆ GSM430_TP_PID_TELETEX_UCI

#define GSM430_TP_PID_TELETEX_UCI   0x0d

◆ GSM430_TP_PID_TELETEX_UNSPEC

#define GSM430_TP_PID_TELETEX_UNSPEC   0x08

◆ GSM430_TP_PID_VIDEOTEX

#define GSM430_TP_PID_VIDEOTEX   0x07

Enumeration Type Documentation

◆ gsm411_cp_cause

Enumerator
GSM411_CP_CAUSE_NET_FAIL 
GSM411_CP_CAUSE_CONGESTION 
GSM411_CP_CAUSE_INV_TRANS_ID 
GSM411_CP_CAUSE_SEMANT_INC_MSG 
GSM411_CP_CAUSE_INV_MAND_INF 
GSM411_CP_CAUSE_MSGTYPE_NOTEXIST 
GSM411_CP_CAUSE_MSG_INCOMP_STATE 
GSM411_CP_CAUSE_IE_NOTEXIST 
GSM411_CP_CAUSE_PROTOCOL_ERR 

◆ gsm411_cp_ie

Enumerator
GSM411_CP_IE_USER_DATA 
GSM411_CP_IE_CAUSE 

◆ gsm411_cp_state

Enumerator
GSM411_CPS_IDLE 
GSM411_CPS_MM_CONN_PENDING 
GSM411_CPS_WAIT_CP_ACK 
GSM411_CPS_MM_ESTABLISHED 

◆ gsm411_rp_cause

Enumerator
GSM411_RP_CAUSE_MO_NUM_UNASSIGNED 
GSM411_RP_CAUSE_MO_OP_DET_BARR 
GSM411_RP_CAUSE_MO_CALL_BARRED 
GSM411_RP_CAUSE_MO_SMS_REJECTED 
GSM411_RP_CAUSE_MO_DEST_OUT_OF_ORDER 
GSM411_RP_CAUSE_MO_UNIDENTIFIED_SUBSCR 
GSM411_RP_CAUSE_MO_FACILITY_REJ 
GSM411_RP_CAUSE_MO_UNKNOWN_SUBSCR 
GSM411_RP_CAUSE_MO_NET_OUT_OF_ORDER 
GSM411_RP_CAUSE_MO_TEMP_FAIL 
GSM411_RP_CAUSE_MO_CONGESTION 
GSM411_RP_CAUSE_MO_RES_UNAVAIL 
GSM411_RP_CAUSE_MO_REQ_FAC_NOTSUBSCR 
GSM411_RP_CAUSE_MO_REQ_FAC_NOTIMPL 
GSM411_RP_CAUSE_MO_INTERWORKING 
GSM411_RP_CAUSE_MT_MEM_EXCEEDED 
GSM411_RP_CAUSE_INV_TRANS_REF 
GSM411_RP_CAUSE_SEMANT_INC_MSG 
GSM411_RP_CAUSE_INV_MAND_INF 
GSM411_RP_CAUSE_MSGTYPE_NOTEXIST 
GSM411_RP_CAUSE_MSG_INCOMP_STATE 
GSM411_RP_CAUSE_IE_NOTEXIST 
GSM411_RP_CAUSE_PROTOCOL_ERR 

◆ gsm411_rp_ie

Enumerator
GSM411_IE_RP_USER_DATA 
GSM411_IE_RP_CAUSE 

◆ gsm411_rp_state

Enumerator
GSM411_RPS_IDLE 
GSM411_RPS_WAIT_FOR_RP_ACK 
GSM411_RPS_WAIT_TO_TX_RP_ACK 
GSM411_RPS_WAIT_FOR_RETRANS_T 

◆ sms_alphabet

Enumerator
DCS_NONE 
DCS_7BIT_DEFAULT 
DCS_UCS2 
DCS_8BIT_DATA 

Variable Documentation

◆ __attribute__

enum sms_alphabet __attribute__

◆ data

uint8_t data[0]

◆ len

◆ msg_ref

uint8_t msg_ref

◆ msg_type

uint8_t msg_type