view cdg211/prim/mnsms.pdf @ 597:f18b29e27be5

First attempt at MCSI voice path automatic switching The function is implemented at the ACI level in both aci2 and aci3, successfully avoids triggering the DSP bug on the first call, but the shutdown of MCSI upon call completion is not working properly yet in either version.
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 27 Mar 2019 22:18:35 +0000
parents 56abf6cf8a0b
children
line wrap: on
line source

;********************************************************************************
;*** File           : mnsms.pdf
;*** Creation       : Fri Jun 08 13:58:01 CST 2007
;*** XSLT Processor : Apache Software Foundation / http://xml.apache.org/xalan-j / supports XSLT-Ver: 1
;*** Copyright      : (c) Texas Instruments AG, Berlin Germany 2002
;********************************************************************************
;*** Document Type  : Service Access Point Specification
;*** Document Name  : mnsms
;*** Document No.   : 6147.103.96.107
;*** Document Date  : 2002-04-19
;*** Document Status: BEING_PROCESSED
;*** Document Author: SBK
;********************************************************************************



PRAGMA 	SRC_FILE_TIME 	"Fri Jan 20 15:37:02 2006"
PRAGMA 	LAST_MODIFIED 	"2002-04-19"
PRAGMA 	ID_AND_VERSION 	"6147.103.96.107"



CONST 	SMS_MSG_LEN 	140 	; Length of message text counted as octets
CONST 	SMS_CMD_LEN 	157 	; Length of command data (number of octets)
CONST 	SIM_PDU_LEN 	175 	; Length of SMS data stored in nonvolatile memory (SIM/ME)
EXTERN CONST 	@p_gsmcom - SMSCP_ORIGINATING_ENTITY@ 	SMSCP_ORIGINATING_ENTITY 	; mask for indicating the originating entity of a cause is SMS-CP
EXTERN CONST 	@p_gsmcom - SMSRP_ORIGINATING_ENTITY@ 	SMSRP_ORIGINATING_ENTITY 	; mask for indicating the originating entity of a cause is SMS-RP
EXTERN CONST 	@p_gsmcom - SMSTP_ORIGINATING_ENTITY@ 	SMSTP_ORIGINATING_ENTITY 	; mask for indicating the originating entity of a cause is SMS-CP



VALTAB 	VAL_mem_type
VAL 	1 	MEM_ME 	"mobile equipment memory 1"
VAL 	3 	MEM_SM 	"subscriber identity module memory"
VAL 	5 	MEM_SR 	"status report memory"

VALTAB 	VAL_cause
VAL 	0b1000100111111111 	SMS_NO_ERROR 	"No error"
VAL 	0b1100100100000000 	SMS_CAUSE_PARAM_WRONG 	"Wrong parameter in primitive"
VAL 	0b1100100100000001 	SMS_CAUSE_ENTITY_BUSY 	"Entity is busy"
VAL 	0b1100100100000010 	SMS_CAUSE_OPER_NOT_ALLW 	"Operation not allowed"
VAL 	0b1100100100000011 	SMS_CAUSE_OPER_NOT_SUPP 	"Operation not supported"
VAL 	0b1100100100000100 	SMS_CAUSE_SIM_BUSY 	"SIM busy"
VAL 	0b1100100100000101 	SMS_CAUSE_MEM_FAIL 	"Memory failure"
VAL 	0b1100100100000110 	SMS_CAUSE_INV_INDEX 	"Invalid memory index"
VAL 	0b1100100100001000 	SMS_CAUSE_MEM_FULL 	"Memory full"
VAL 	0b1100100100001001 	SMS_CAUSE_NO_SERVICE 	"No network service"
VAL 	0b1100100100001010 	SMS_CAUSE_NET_TIMEOUT 	"Network timeout"
VAL 	0b1100100100001011 	SMS_CAUSE_UNEXP_CNMA 	"No +CNMA acknowledgement expected"
VAL 	0b1100100100001111 	SMS_CAUSE_OTHER_ERROR 	"Any other error"
VAL 	0b1100100100001100 	SMS_CAUSE_MEM_AVAIL 	"Memory available after full"

VALTAB 	VAL_state
VAL 	0x3 - 0xFE 	"reserved, to be treated as SMS inoperable"
VAL 	0 	SMS_STATE_READY 	"SMS is full operable"
VAL 	1 	SMS_STATE_INITIALISING 	"SMS is in initialisation state"
VAL 	2 	SMS_STATE_BUSY 	"SMS is in a busy condition"
VAL 	0xFF 	SMS_STATE_NOT_AVAILABLE 	"SMS is inoperable"

VALTAB 	VAL_condx
VAL 	3 - 255 	"reserved, interpret as 'overwrite any'"
VAL 	0 	SMS_CONDX_OVR_NON 	"do not overwrite an existing message"
VAL 	1 	SMS_CONDX_OVR_MO 	"overwrite only an exisiting mobile originated message"
VAL 	2 	SMS_CONDX_OVR_ANY 	"overwrite any existing message"

VALTAB 	VAL_modify
VAL 	5 - 255 	"reserved, interpret as 'complete substitution'"
VAL 	0 	SMS_MODIFY_NON 	"no modification"
VAL 	1 	SMS_MODIFY_TPOA 	"substitution of TP-OA"
VAL 	2 	SMS_MODIFY_SCA 	"substitution of SCA"
VAL 	3 	SMS_MODIFY_TPOA_SCA 	"substitution of TP-OA and SCA"
VAL 	4 	SMS_MODIFY_ALL 	"substitution of the complete message"

VALTAB 	VAL_rec_num
VAL 	0x0 	SMS_RECORD_NOT_EXIST 	"record is not existing"

VALTAB 	VAL_status
VAL 	0x0 	SMS_RECORD_FREE 	"Free record"
VAL 	0x3 	SMS_RECORD_REC_UNREAD 	"MT record, not read"
VAL 	0x1 	SMS_RECORD_REC_READ 	"MT record, already read"
VAL 	0x7 	SMS_RECORD_STO_UNSENT 	"MO record, not sent"
VAL 	0x5 	SMS_RECORD_STO_SENT 	"MO record, already sent, status report not requested"
VAL 	0x0D 	SMS_RECORD_STAT_UNRCVD 	"MO record, already sent, status report requested, not received"
VAL 	0x15 	SMS_RECORD_STAT_UNSTRD 	"MO record, already sent, status report received, not stored"
VAL 	0x1D 	SMS_RECORD_STAT_STRD 	"MO record, already sent, status report received and stored"
VAL 	0xE0 	SMS_RECORD_INVALID 	"The record keeps unrecognizable data"

VALTAB 	VAL_mt
VAL 	0 	MT0 	"Mobile Terminated Mode 0"
VAL 	1 	MT1 	"Mobile Terminated Mode 1"
VAL 	2 	MT2 	"Mobile Terminated Mode 2"
VAL 	3 	MT3 	"Mobile Terminated Mode 3"
VAL 	4 	MT_DEF 	"Mobile Terminated Mode Default"

VALTAB 	VAL_ds
VAL 	0 	DS0 	"Status Report Mode 0: no status report to be returned"
VAL 	1 	DS1 	"Status Report Mode 1: status report returned to MMI"
VAL 	2 	DS2 	"Status Report Mode 2: status report stored, if possible"

VALTAB 	VAL_mhc
VAL 	0 	SMS_MHC_DEF 	"default (Phase 2)"
VAL 	2 	SMS_MHC_PH2 	"Phase 2"
VAL 	3 	SMS_MHC_PH2PLUS 	"Phase 2+"

VALTAB 	VAL_read_mode
VAL 	0 	READ_NORMAL 	"Normal reading"
VAL 	1 	READ_PREVIEW 	"Reading without preview"
VAL 	2 	READ_STATUS_CHANGE 	"Change only status"

VALTAB 	VAL_resp
VAL 	0 	SMS_RP_ACK 	"send RP-ACK to network"
VAL 	1 	SMS_RP_ERROR 	"send RP-ERROR to network"

VALTAB 	VAL_mo_sms_serv
VAL 	0 	GPRS_SMS_GPRS_ONLY 	"Use GPRS only for MO SMS"
VAL 	1 	GPRS_SMS_CCT_ONLY 	"Use CCT  only for MO SMS"
VAL 	2 	GPRS_SMS_GPRS_PREF 	"Use GPRS in preference for MO SMS"
VAL 	3 	GPRS_SMS_CCT_PREF 	"Use CCT in preference for MO SMS"

VALTAB 	VAL_query
VAL 	1 	SMS_QUERY_DELIVER_STATUS 	"Query Request is for delivery status (pause or resume)"

VALTAB 	VAL_deliver_status
VAL 	0x10 	SMS_DELIVER_STATUS_PAUSE 	"SMS delivery paused by user"
VAL 	0x11 	SMS_DELIVER_STATUS_RESUME 	"SMS delivery to user allowed"

VALTAB 	VAL_cmms_mode
VAL 	0 	CMMS_MODE_DEF 	"Default value of 0 for +CMMS mode. The mode switches to 0 when timer expires if the mode set was 1. "
VAL 	1 	CMMS_MODE_ONE 	"Mode value of one for +CMMS mode. For this mode set, when the timer expires, mode is switched back to 0."
VAL 	2 	CMMS_MODE_TWO 	"Mode value of two for +CMMS mode. For this mode set, even after the timer expiry mode is not switched to 0"

VALTAB 	VAL_delete_status
VAL 	0 	CMGD_DEL_INDEX 	"Delete the messages specified by the index."
VAL 	1 	CMGD_DEL_READ 	"Ignore the index and delete all the read messages."
VAL 	2 	CMGD_DEL_READ_SENT 	"Ignore the index and delete all the read and sent messages."
VAL 	3 	CMGD_DEL_READ_SENT_UNSENT 	"Ignore the index and delete all the read, send and unsent messages."
VAL 	4 	CMGD_DEL_ALL 	"Ignore the index and delete all the messages whatever the status it is."




VAR 	mem_type 	"memory type" 	B

VAL 	@p_mnsms - VAL_mem_type@ 	

VAR 	pref_mem_3 	"memory type" 	B


VAR 	cause 	"error code" 	S

VAL 	@p_mnsms - VAL_cause@ 	

VAR 	state 	"State of the SMS Entity" 	B

VAL 	@p_mnsms - VAL_state@ 	

VAR 	condx 	"write condition" 	B

VAL 	@p_mnsms - VAL_condx@ 	

VAR 	tp_mr 	"TP message reference" 	B


VAR 	modify 	"Modifier" 	B

VAL 	@p_mnsms - VAL_modify@ 	

VAR 	rec_num 	"record number" 	B

VAL 	@p_mnsms - VAL_rec_num@ 	

VAR 	rec_next 	"number of a following record with a valid message, if existent" 	B

VAL 	@p_mnsms - VAL_rec_num@ 	

VAR 	rec_max 	"maximum number of records (1..255) in EF(SMS) or other memory" 	B

VAL 	@p_mnsms - VAL_rec_num@ 	

VAR 	rec_status 	"number of a record in EF(SMSR) related to the given stored message" 	B

VAL 	@p_mnsms - VAL_rec_num@ 	

VAR 	status 	"message status" 	B

VAL 	@p_mnsms - VAL_status@ 	

VAR 	mt 	"mobile terminated message handling" 	B

VAL 	@p_mnsms - VAL_mt@ 	

VAR 	ds 	"status report message handling" 	B

VAL 	@p_mnsms - VAL_ds@ 	

VAR 	mhc 	"status report message handling" 	B

VAL 	@p_mnsms - VAL_mhc@ 	

VAR 	read_mode 	"Read Mode" 	B

VAL 	@p_mnsms - VAL_read_mode@ 	

VAR 	resp 	"type of response" 	B

VAL 	@p_mnsms - VAL_resp@ 	

VAR 	mo_sms_serv 	"MO SMS Service" 	B

VAL 	@p_mnsms - VAL_mo_sms_serv@ 	

VAR 	l_buf 	"command length" 	S


VAR 	o_buf 	"command offset" 	S


VAR 	buf 	"command data" 	B


VAR 	query_type 	"specifies to which status the query request refers to" 	B

VAL 	@p_mnsms - VAL_query@ 	

VAR 	deliver_status 	"sms delivery status - pause or resume" 	B

VAL 	@p_mnsms - VAL_deliver_status@ 	

VAR 	cmms_mode 	"Specifies the mode for +CMMS" 	B

VAL 	@p_mnsms - VAL_cmms_mode@ 	

VAR 	tmms_val 	"Timer value for +CMMS command" 	S


VAR 	delete_status 	"Delete flag" 	B

VAL 	@p_mnsms - VAL_delete_status@ 	

VAR 	delete_rec_next 	"Next Record to be deleted." 	B


VAR 	ota_status 	"Indicates the pesonalization status" 	B


VAR 	imei 	"IMEI of the mobile to be extracted from TP user data" 	B





COMP 	sms_sdu 	 "SIM-PDU"
{
 	l_buf 	 ; command length
 	o_buf 	 ; command offset
 	buf 	[SIM_PDU_LEN] 	 ; command data
}






; MNSMS_MESSAGE_IND 	0x8008400D
; MNSMS_REPORT_IND 	0x8006400D
; MNSMS_STATUS_IND 	0x8007400D
; MNSMS_DELETE_REQ 	0x8000000D
; MNSMS_DELETE_CNF 	0x8000400D
; MNSMS_READ_REQ 	0x8001000D
; MNSMS_READ_CNF 	0x8001400D
; MNSMS_STORE_REQ 	0x8002000D
; MNSMS_STORE_CNF 	0x8002400D
; MNSMS_SUBMIT_REQ 	0x8003000D
; MNSMS_SUBMIT_CNF 	0x8003400D
; MNSMS_COMMAND_REQ 	0x8004000D
; MNSMS_COMMAND_CNF 	0x8004400D
; MNSMS_ACK_RES 	0x8008000D
; MNSMS_CONFIGURE_REQ 	0x8005000D
; MNSMS_ERROR_IND 	0x8009400D
; MNSMS_MO_SERV_REQ 	0x800C000D
; MNSMS_MO_SERV_CNF 	0x800C400D
; MNSMS_PAUSE_REQ 	0x8006000D
; MNSMS_RESUME_REQ 	0x8007000D
; MNSMS_RESUME_CNF 	0x800A400D
; MNSMS_QUERY_REQ 	0x800B000D
; MNSMS_QUERY_CNF 	0x800B400D
; MNSMS_OTA_DECODE_IND 	0x800D400D
; MNSMS_OTA_DECODE_RES 	0x800D000D



PRIM 	MNSMS_MESSAGE_IND 	0x8008400D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	rec_max 	 ; maximum number of records
 	status 	 ; sms status
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_REPORT_IND 	0x8006400D
{
 	state 	 ; SMS state
 	< () 	cmms_mode 	> 	 ; Mode value for +CMMS command
}






PRIM 	MNSMS_STATUS_IND 	0x8007400D
{
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_DELETE_REQ 	0x8000000D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	delete_status 	 ; Delete flag
}






PRIM 	MNSMS_DELETE_CNF 	0x8000400D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	cause 	 ; Error code
 	delete_rec_next 	 ; Next Record
}






PRIM 	MNSMS_READ_REQ 	0x8001000D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	read_mode 	 ; read mode
 	status 	 ; message status
}






PRIM 	MNSMS_READ_CNF 	0x8001400D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	rec_next 	 ; number of next record
 	rec_max 	 ; maximum number of records
 	cause 	 ; Error code
 	rec_status 	 ; status record
 	status 	 ; message status
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_STORE_REQ 	0x8002000D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	condx 	 ; write condition
 	status 	 ; message status
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_STORE_CNF 	0x8002400D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	cause 	 ; Error code
}






PRIM 	MNSMS_SUBMIT_REQ 	0x8003000D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	condx 	 ; write condition
 	modify 	 ; Modifier
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_SUBMIT_CNF 	0x8003400D
{
 	mem_type 	 ; memory type
 	rec_num 	 ; record number
 	cause 	 ; Error code
 	tp_mr 	 ; TP Message Reference
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_COMMAND_REQ 	0x8004000D
{
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_COMMAND_CNF 	0x8004400D
{
 	cause 	 ; Error code
 	tp_mr 	 ; TP Message Reference
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_ACK_RES 	0x8008000D
{
 	resp 	 ; type of response
 	sms_sdu 	 ; SIM-PDU
}






PRIM 	MNSMS_CONFIGURE_REQ 	0x8005000D
{
 	pref_mem_3 	 ; preferred memory 3
 	mt 	 ; mobile terminated message handling
 	ds 	 ; status report handling
 	mhc 	 ; message handling compatibility
 	< () 	cmms_mode 	> 	 ; mode value of +CMMS command
 	< () 	tmms_val 	> 	 ; timer Value for +CMMS comamnd
}






PRIM 	MNSMS_ERROR_IND 	0x8009400D
{
 	cause 	 ; Error code
}






PRIM 	MNSMS_MO_SERV_REQ 	0x800C000D
{
 	mo_sms_serv 	 ; MO SMS Service
}






PRIM 	MNSMS_MO_SERV_CNF 	0x800C400D
{
 	mo_sms_serv 	 ; MO SMS Service
}






PRIM 	MNSMS_PAUSE_REQ 	0x8006000D
{
}






PRIM 	MNSMS_RESUME_REQ 	0x8007000D
{
}






PRIM 	MNSMS_RESUME_CNF 	0x800A400D
{
 	cause 	 ; Error Code
}






PRIM 	MNSMS_QUERY_REQ 	0x800B000D
{
 	query_type 	 ; Primitive Item
}






PRIM 	MNSMS_QUERY_CNF 	0x800B400D
{
 	query_type 	 ; Primitive Item
 	< () 	deliver_status 	> 	 ; Primitive Item
}






PRIM 	MNSMS_OTA_DECODE_IND 	0x800D400D
{
 	EXTERN @m_sms - tp_ud@ 	tp_ud 	 ; Primitive Item
}






PRIM 	MNSMS_OTA_DECODE_RES 	0x800D000D
{
 	ota_status 	 ; Primitive Item
 	imei 	[16] 	 ; Primitive Item
}