All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] Add parser for location information objects
@ 2010-03-24  9:35 Yang Gu
  2010-03-24  9:35 ` [PATCH 2/6] Add macro for ber-tlv more time Yang Gu
  2010-03-24 20:00 ` [PATCH 1/6] Add parser for location information objects Denis Kenzior
  0 siblings, 2 replies; 12+ messages in thread
From: Yang Gu @ 2010-03-24  9:35 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 3288 bytes --]

---
 src/simutil.c |    2 +-
 src/simutil.h |    1 +
 src/stkutil.c |   32 ++++++++++++++++++++++++++++++++
 src/stkutil.h |    9 +++++++++
 4 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/src/simutil.c b/src/simutil.c
index d9383b7..65ffa36 100644
--- a/src/simutil.c
+++ b/src/simutil.c
@@ -538,7 +538,7 @@ static char *sim_network_name_parse(const unsigned char *buffer, int length,
 	return ret;
 }
 
-static void parse_mcc_mnc(const guint8 *bcd, char *mcc, char *mnc)
+void parse_mcc_mnc(const guint8 *bcd, char *mcc, char *mnc)
 {
 	static const char digit_lut[] = "0123456789*#abd\0";
 	guint8 digit;
diff --git a/src/simutil.h b/src/simutil.h
index 043c21f..09964a8 100644
--- a/src/simutil.h
+++ b/src/simutil.h
@@ -181,6 +181,7 @@ const struct sim_eons_operator_info *sim_eons_lookup(struct sim_eons *eons,
 						const char *mnc);
 void sim_eons_free(struct sim_eons *eons);
 
+void parse_mcc_mnc(const guint8 *bcd, char *mcc, char *mnc);
 struct sim_spdi *sim_spdi_new(const guint8 *tlv, int length);
 gboolean sim_spdi_lookup(struct sim_spdi *spdi,
 				const char *mcc, const char *mnc);
diff --git a/src/stkutil.c b/src/stkutil.c
index 9c83f49..a6b0284 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -519,6 +519,36 @@ error:
 	return FALSE;
 }
 
+/* Defined in TS 102.223 Section 8.19 */
+static gboolean parse_dataobj_location_info(
+		struct comprehension_tlv_iter *iter, void *user)
+{
+	struct stk_location_info *li = user;
+	const unsigned char *data;
+	unsigned int len;
+
+	if (comprehension_tlv_iter_get_tag(iter) !=
+			STK_DATA_OBJECT_TYPE_LOCATION_INFO)
+		return FALSE;
+
+	len = comprehension_tlv_iter_get_length(iter);
+	if ((len != 5) && (len != 7) && (len != 9))
+		return FALSE;
+
+	data = comprehension_tlv_iter_get_data(iter);
+
+	parse_mcc_mnc(data, li->mcc, li->mnc);
+	memcpy(li->lac_tac, data + 3, 2);
+
+	if (len >= 7)
+		memcpy(li->cell_id, data+5, 2);
+
+	if (len == 9)
+		memcpy(li->ext_cell_id, data+7, 2);
+
+	return TRUE;
+}
+
 /* Defined in TS 102.223 Section 8.31 */
 static gboolean parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
 					void *user)
@@ -638,6 +668,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
 		return parse_dataobj_tone;
 	case STK_DATA_OBJECT_TYPE_FILE_LIST:
 		return parse_dataobj_file_list;
+	case STK_DATA_OBJECT_TYPE_LOCATION_INFO:
+		return parse_dataobj_location_info;
 	case STK_DATA_OBJECT_TYPE_ICON_ID:
 		return parse_dataobj_icon_id;
 	case STK_DATA_OBJECT_TYPE_IMMEDIATE_RESPONSE:
diff --git a/src/stkutil.h b/src/stkutil.h
index 93ac854..00c985a 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -345,6 +345,15 @@ struct stk_result {
 	unsigned char *additional;
 };
 
+/* Defined in TS 102.223 Section 8.19 */
+struct stk_location_info {
+	char mnc[OFONO_MAX_MNC_LENGTH + 1];
+	char mcc[OFONO_MAX_MCC_LENGTH + 1];
+	unsigned char lac_tac[2];
+	unsigned char cell_id[2];
+	unsigned char ext_cell_id[2];
+};
+
 /* Define the struct of single file in TS102.223 Section 8.18.
  * According to TS 11.11 Section 6.2, each file id has two bytes, and the
  * maximum Dedicated File level is 2. So the maximum size of file is 8, which
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/6] Add macro for ber-tlv more time
  2010-03-24  9:35 [PATCH 1/6] Add parser for location information objects Yang Gu
@ 2010-03-24  9:35 ` Yang Gu
  2010-03-24  9:35   ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Yang Gu
  2010-03-24 17:15   ` [PATCH 2/6] Add macro for ber-tlv more time Denis Kenzior
  2010-03-24 20:00 ` [PATCH 1/6] Add parser for location information objects Denis Kenzior
  1 sibling, 2 replies; 12+ messages in thread
From: Yang Gu @ 2010-03-24  9:35 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 694 bytes --]

---
 src/stkutil.h |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/stkutil.h b/src/stkutil.h
index 00c985a..4b7c382 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -37,8 +37,9 @@ enum stk_envelope_type {
 /* TS 102.223 Section 9.4 */
 enum stk_command_type {
 	STK_COMMAND_TYPE_REFRESH =			0x01,
-	STK_COMMAND_TYPE_POLL_INTERVAL =		0x02,
-	STK_COMMAND_TYPE_POLLING_OFF =			0x03,
+	STK_COMMAND_TYPE_MORE_TIME =			0x02,
+	STK_COMMAND_TYPE_POLL_INTERVAL =		0x03,
+	STK_COMMAND_TYPE_POLLING_OFF =			0x04,
 	STK_COMMAND_TYPE_SETUP_EVENT_LIST =		0x05,
 	STK_COMMAND_TYPE_SETUP_CALL =			0x10,
 	STK_COMMAND_TYPE_SEND_SS =			0x11,
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv
  2010-03-24  9:35 ` [PATCH 2/6] Add macro for ber-tlv more time Yang Gu
@ 2010-03-24  9:35   ` Yang Gu
  2010-03-24  9:35     ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Yang Gu
  2010-03-24 17:03     ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Denis Kenzior
  2010-03-24 17:15   ` [PATCH 2/6] Add macro for ber-tlv more time Denis Kenzior
  1 sibling, 2 replies; 12+ messages in thread
From: Yang Gu @ 2010-03-24  9:35 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2707 bytes --]

---
 src/stkutil.h |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/src/stkutil.h b/src/stkutil.h
index 4b7c382..5724d29 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -54,7 +54,7 @@ enum stk_command_type {
 	STK_COMMAND_TYPE_GET_INPUT =			0x23,
 	STK_COMMAND_TYPE_SELECT_ITEM =			0x24,
 	STK_COMMAND_TYPE_SETUP_MENU =			0x25,
-	STK_COMMAND_TYPE_PROVIDE_LOCAL_INFORMATION =	0x26,
+	STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO =		0x26,
 	STK_COMMAND_TYPE_TIMER_MANAGEMENT =		0x27,
 	STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT =		0x28,
 	STK_COMMAND_TYPE_PERFORM_CARD_APDU =		0x30,
@@ -69,13 +69,13 @@ enum stk_command_type {
 	STK_COMMAND_TYPE_SEND_DATA =			0x43,
 	STK_COMMAND_TYPE_GET_CHANNEL_STATUS =		0x44,
 	STK_COMMAND_TYPE_SERVICE_SEARCH =		0x45,
-	STK_COMMAND_TYPE_GET_SERVICE_INFORMATION =	0x46,
+	STK_COMMAND_TYPE_GET_SERVICE_INFO =		0x46,
 	STK_COMMAND_TYPE_DECLARE_SERVICE =		0x47,
 	STK_COMMAND_TYPE_SET_FRAMES =			0x50,
 	STK_COMMAND_TYPE_GET_FRAMES_STATUS =		0x51,
-	STK_COMMAND_TYPE_RETRIEVE_MMS =			0x60,
-	STK_COMMAND_TYPE_SUBMIT_MMS =			0x61,
-	STK_COMMAND_TYPE_DISPLAY_MMS =			0x62,
+	STK_COMMAND_TYPE_RETRIEVE_MM =			0x60,
+	STK_COMMAND_TYPE_SUBMIT_MM =			0x61,
+	STK_COMMAND_TYPE_DISPLAY_MM =			0x62,
 	STK_COMMAND_TYPE_ACTIVATE =			0x70,
 	STK_COMMAND_TYPE_END_SESSION =			0x81,
 };
@@ -131,7 +131,7 @@ enum stk_data_object_type {
 	STK_DATA_OBJECT_TYPE_BROWSER_ID =			0x30,
 	STK_DATA_OBJECT_TYPE_URL =				0x31,
 	STK_DATA_OBJECT_TYPE_BEARER =				0x32,
-	STK_DATA_OBJECT_TYPE_PROVISIONING_REFERENCE_FILE =	0x33,
+	STK_DATA_OBJECT_TYPE_PROVISIONING_FILE_REFERENCE =	0x33,
 	STK_DATA_OBJECT_TYPE_BROWSER_TERMINATION_CAUSE =	0x34,
 	STK_DATA_OBJECT_TYPE_BEARER_DESCRIPTION =		0x35,
 	STK_DATA_OBJECT_TYPE_CHANNEL_DATA =			0x36,
@@ -162,12 +162,12 @@ enum stk_data_object_type {
 	STK_DATA_OBJECT_TYPE_FRAME_LAYOUT =			0x66,
 	STK_DATA_OBJECT_TYPE_FRAMES_INFO =			0x67,
 	STK_DATA_OBJECT_TYPE_FRAME_ID =				0x68,
-	STK_DATA_OBJECT_TYPE_MMS_REFERENCE =			0x6A,
-	STK_DATA_OBJECT_TYPE_MMS_ID =				0x6B,
-	STK_DATA_OBJECT_TYPE_MMS_TRANSFER_STATUS =		0x6C,
+	STK_DATA_OBJECT_TYPE_MM_REFERENCE =			0x6A,
+	STK_DATA_OBJECT_TYPE_MM_ID =				0x6B,
+	STK_DATA_OBJECT_TYPE_MM_TRANSFER_STATUS =		0x6C,
 	STK_DATA_OBJECT_TYPE_MEID =				0x6D,
-	STK_DATA_OBJECT_TYPE_CONTENT_ID =			0x6E,
-	STK_DATA_OBJECT_TYPE_MMS_NOTIFICATION =			0x6F,
+	STK_DATA_OBJECT_TYPE_MM_CONTENT_ID =			0x6E,
+	STK_DATA_OBJECT_TYPE_MM_NOTIFICATION =			0x6F,
 	STK_DATA_OBJECT_TYPE_LAST_ENVELOPE =			0x70,
 	STK_DATA_OBJECT_TYPE_REGISTRY_APPLICATION_DATA =	0x71,
 	STK_DATA_OBJECT_TYPE_ROUTING_AREA_INFO =		0x73,
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu
  2010-03-24  9:35   ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Yang Gu
@ 2010-03-24  9:35     ` Yang Gu
  2010-03-24  9:35       ` [PATCH 5/6] Add parser for imei objects Yang Gu
  2010-03-24 17:15       ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Denis Kenzior
  2010-03-24 17:03     ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Denis Kenzior
  1 sibling, 2 replies; 12+ messages in thread
From: Yang Gu @ 2010-03-24  9:35 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 622 bytes --]

---
 src/stkutil.h |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/stkutil.h b/src/stkutil.h
index 5724d29..d2cbee0 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -151,6 +151,7 @@ enum stk_data_object_type {
 	STK_DATA_OBJECT_TYPE_SERVICE_AVAILABILITY =		0x45,
 	STK_DATA_OBJECT_TYPE_ESN =				0x46,
 	STK_DATA_OBJECT_TYPE_NETWORK_ACCESS_NAME =		0x47,
+	STK_DATA_OBJECT_TYPE_CDMA_SMS_TPDU = 			0x48,
 	STK_DATA_OBJECT_TYPE_REMOTE_ENTITY_ADDRESS =		0x49,
 	STK_DATA_OBJECT_TYPE_TEXT_ATTRIBUTE =			0x50,
 	STK_DATA_OBJECT_TYPE_ITEM_TEXT_ATTRIBUTE_LIST =		0x51,
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 5/6] Add parser for imei objects
  2010-03-24  9:35     ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Yang Gu
@ 2010-03-24  9:35       ` Yang Gu
  2010-03-24  9:35         ` [PATCH 6/6] Add parser for help request objects Yang Gu
  2010-03-24 17:38         ` [PATCH 5/6] Add parser for imei objects Denis Kenzior
  2010-03-24 17:15       ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Denis Kenzior
  1 sibling, 2 replies; 12+ messages in thread
From: Yang Gu @ 2010-03-24  9:35 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]

---
 src/stkutil.c |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/src/stkutil.c b/src/stkutil.c
index a6b0284..3e423b5 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -549,6 +549,28 @@ static gboolean parse_dataobj_location_info(
 	return TRUE;
 }
 
+/* Defined in TS 102.223 Section 8.20 */
+static gboolean parse_dataobj_imei(struct comprehension_tlv_iter *iter,
+						void *user)
+{
+	char **imei = user;
+	const unsigned char *data;
+	unsigned int len;
+
+	if (comprehension_tlv_iter_get_tag(iter) !=
+			STK_DATA_OBJECT_TYPE_IMEI)
+		return FALSE;
+
+	len = comprehension_tlv_iter_get_length(iter);
+	if (len != 8)
+		return FALSE;
+
+	data = comprehension_tlv_iter_get_data(iter);
+	memcpy(*imei, data, len);
+
+	return TRUE;
+}
+
 /* Defined in TS 102.223 Section 8.31 */
 static gboolean parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
 					void *user)
@@ -670,6 +692,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
 		return parse_dataobj_file_list;
 	case STK_DATA_OBJECT_TYPE_LOCATION_INFO:
 		return parse_dataobj_location_info;
+	case STK_DATA_OBJECT_TYPE_IMEI:
+		return parse_dataobj_imei;
 	case STK_DATA_OBJECT_TYPE_ICON_ID:
 		return parse_dataobj_icon_id;
 	case STK_DATA_OBJECT_TYPE_IMMEDIATE_RESPONSE:
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 6/6] Add parser for help request objects
  2010-03-24  9:35       ` [PATCH 5/6] Add parser for imei objects Yang Gu
@ 2010-03-24  9:35         ` Yang Gu
  2010-03-24 17:44           ` Denis Kenzior
  2010-03-24 17:38         ` [PATCH 5/6] Add parser for imei objects Denis Kenzior
  1 sibling, 1 reply; 12+ messages in thread
From: Yang Gu @ 2010-03-24  9:35 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1764 bytes --]

---
 src/stkutil.c |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/src/stkutil.c b/src/stkutil.c
index 3e423b5..215013d 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -50,6 +50,23 @@ struct gsm_sms_tpdu {
 	unsigned char tpdu[164];
 };
 
+/* For data object to indicate the existence */
+static gboolean parse_dataobj_common_bool(struct comprehension_tlv_iter *iter,
+		void *user, enum stk_data_object_type type)
+{
+	gboolean *ret = user;
+
+	if (comprehension_tlv_iter_get_tag(iter) != type)
+		return FALSE;
+
+	if (comprehension_tlv_iter_get_length(iter) != 0)
+		return FALSE;
+
+	*ret = TRUE;
+
+	return TRUE;
+}
+
 /* Defined in TS 102.223 Section 8.1 */
 static gboolean parse_dataobj_address(struct comprehension_tlv_iter *iter,
 					void *user)
@@ -571,6 +588,14 @@ static gboolean parse_dataobj_imei(struct comprehension_tlv_iter *iter,
 	return TRUE;
 }
 
+/* Defined in TS 102.223 Section 8.21 */
+static gboolean parse_dataobj_help_request(struct comprehension_tlv_iter *iter,
+						void *user)
+{
+	return parse_dataobj_common_bool(iter, user,
+				STK_DATA_OBJECT_TYPE_HELP_REQUEST);
+}
+
 /* Defined in TS 102.223 Section 8.31 */
 static gboolean parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
 					void *user)
@@ -694,6 +719,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
 		return parse_dataobj_location_info;
 	case STK_DATA_OBJECT_TYPE_IMEI:
 		return parse_dataobj_imei;
+	case STK_DATA_OBJECT_TYPE_HELP_REQUEST:
+		return parse_dataobj_help_request;
 	case STK_DATA_OBJECT_TYPE_ICON_ID:
 		return parse_dataobj_icon_id;
 	case STK_DATA_OBJECT_TYPE_IMMEDIATE_RESPONSE:
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv
  2010-03-24  9:35   ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Yang Gu
  2010-03-24  9:35     ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Yang Gu
@ 2010-03-24 17:03     ` Denis Kenzior
  1 sibling, 0 replies; 12+ messages in thread
From: Denis Kenzior @ 2010-03-24 17:03 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 3084 bytes --]

Hi Yang,

> ---
>  src/stkutil.h |   22 +++++++++++-----------
>  1 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/src/stkutil.h b/src/stkutil.h
> index 4b7c382..5724d29 100644
> --- a/src/stkutil.h
> +++ b/src/stkutil.h
> @@ -54,7 +54,7 @@ enum stk_command_type {
>  	STK_COMMAND_TYPE_GET_INPUT =			0x23,
>  	STK_COMMAND_TYPE_SELECT_ITEM =			0x24,
>  	STK_COMMAND_TYPE_SETUP_MENU =			0x25,
> -	STK_COMMAND_TYPE_PROVIDE_LOCAL_INFORMATION =	0x26,
> +	STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO =		0x26,

I'm fine with this one

>  	STK_COMMAND_TYPE_TIMER_MANAGEMENT =		0x27,
>  	STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT =		0x28,
>  	STK_COMMAND_TYPE_PERFORM_CARD_APDU =		0x30,
> @@ -69,13 +69,13 @@ enum stk_command_type {
>  	STK_COMMAND_TYPE_SEND_DATA =			0x43,
>  	STK_COMMAND_TYPE_GET_CHANNEL_STATUS =		0x44,
>  	STK_COMMAND_TYPE_SERVICE_SEARCH =		0x45,
> -	STK_COMMAND_TYPE_GET_SERVICE_INFORMATION =	0x46,
> +	STK_COMMAND_TYPE_GET_SERVICE_INFO =		0x46,

And I'm fine with this one

>  	STK_COMMAND_TYPE_DECLARE_SERVICE =		0x47,
>  	STK_COMMAND_TYPE_SET_FRAMES =			0x50,
>  	STK_COMMAND_TYPE_GET_FRAMES_STATUS =		0x51,
> -	STK_COMMAND_TYPE_RETRIEVE_MMS =			0x60,
> -	STK_COMMAND_TYPE_SUBMIT_MMS =			0x61,
> -	STK_COMMAND_TYPE_DISPLAY_MMS =			0x62,
> +	STK_COMMAND_TYPE_RETRIEVE_MM =			0x60,
> +	STK_COMMAND_TYPE_SUBMIT_MM =			0x61,
> +	STK_COMMAND_TYPE_DISPLAY_MM =			0x62,

This one is silly, MM is multimedia message, MMS is a much clearer name

>  	STK_COMMAND_TYPE_ACTIVATE =			0x70,
>  	STK_COMMAND_TYPE_END_SESSION =			0x81,
>  };
> @@ -131,7 +131,7 @@ enum stk_data_object_type {
>  	STK_DATA_OBJECT_TYPE_BROWSER_ID =			0x30,
>  	STK_DATA_OBJECT_TYPE_URL =				0x31,
>  	STK_DATA_OBJECT_TYPE_BEARER =				0x32,
> -	STK_DATA_OBJECT_TYPE_PROVISIONING_REFERENCE_FILE =	0x33,
> +	STK_DATA_OBJECT_TYPE_PROVISIONING_FILE_REFERENCE =	0x33,

I'm ok with this one

>  	STK_DATA_OBJECT_TYPE_BROWSER_TERMINATION_CAUSE =	0x34,
>  	STK_DATA_OBJECT_TYPE_BEARER_DESCRIPTION =		0x35,
>  	STK_DATA_OBJECT_TYPE_CHANNEL_DATA =			0x36,
> @@ -162,12 +162,12 @@ enum stk_data_object_type {
>  	STK_DATA_OBJECT_TYPE_FRAME_LAYOUT =			0x66,
>  	STK_DATA_OBJECT_TYPE_FRAMES_INFO =			0x67,
>  	STK_DATA_OBJECT_TYPE_FRAME_ID =				0x68,
> -	STK_DATA_OBJECT_TYPE_MMS_REFERENCE =			0x6A,
> -	STK_DATA_OBJECT_TYPE_MMS_ID =				0x6B,
> -	STK_DATA_OBJECT_TYPE_MMS_TRANSFER_STATUS =		0x6C,
> +	STK_DATA_OBJECT_TYPE_MM_REFERENCE =			0x6A,
> +	STK_DATA_OBJECT_TYPE_MM_ID =				0x6B,
> +	STK_DATA_OBJECT_TYPE_MM_TRANSFER_STATUS =		0x6C,

Keep MMS here

>  	STK_DATA_OBJECT_TYPE_MEID =				0x6D,
> -	STK_DATA_OBJECT_TYPE_CONTENT_ID =			0x6E,
> -	STK_DATA_OBJECT_TYPE_MMS_NOTIFICATION =			0x6F,
> +	STK_DATA_OBJECT_TYPE_MM_CONTENT_ID =			0x6E,

Rename this MMS_CONTENT_ID

> +	STK_DATA_OBJECT_TYPE_MM_NOTIFICATION =			0x6F,

Keep MMS here

>  	STK_DATA_OBJECT_TYPE_LAST_ENVELOPE =			0x70,
>  	STK_DATA_OBJECT_TYPE_REGISTRY_APPLICATION_DATA =	0x71,
>  	STK_DATA_OBJECT_TYPE_ROUTING_AREA_INFO =		0x73,
> 

Regards,
-Denis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/6] Add macro for ber-tlv more time
  2010-03-24  9:35 ` [PATCH 2/6] Add macro for ber-tlv more time Yang Gu
  2010-03-24  9:35   ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Yang Gu
@ 2010-03-24 17:15   ` Denis Kenzior
  1 sibling, 0 replies; 12+ messages in thread
From: Denis Kenzior @ 2010-03-24 17:15 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 167 bytes --]

Hi Yang,

> ---
>  src/stkutil.h |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 

This patch has been applied, thanks.

Regards,
-Denis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu
  2010-03-24  9:35     ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Yang Gu
  2010-03-24  9:35       ` [PATCH 5/6] Add parser for imei objects Yang Gu
@ 2010-03-24 17:15       ` Denis Kenzior
  1 sibling, 0 replies; 12+ messages in thread
From: Denis Kenzior @ 2010-03-24 17:15 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 163 bytes --]

Hi Yang,

> ---
>  src/stkutil.h |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 

This patch has been applied, thanks.

Regards,
-Denis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 5/6] Add parser for imei objects
  2010-03-24  9:35       ` [PATCH 5/6] Add parser for imei objects Yang Gu
  2010-03-24  9:35         ` [PATCH 6/6] Add parser for help request objects Yang Gu
@ 2010-03-24 17:38         ` Denis Kenzior
  1 sibling, 0 replies; 12+ messages in thread
From: Denis Kenzior @ 2010-03-24 17:38 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1124 bytes --]

Hi Yang,

> ---
>  src/stkutil.c |   24 ++++++++++++++++++++++++
>  1 files changed, 24 insertions(+), 0 deletions(-)
> 
> diff --git a/src/stkutil.c b/src/stkutil.c
> index a6b0284..3e423b5 100644
> --- a/src/stkutil.c
> +++ b/src/stkutil.c
> @@ -549,6 +549,28 @@ static gboolean parse_dataobj_location_info(
>  	return TRUE;
>  }
> 
> +/* Defined in TS 102.223 Section 8.20 */
> +static gboolean parse_dataobj_imei(struct comprehension_tlv_iter *iter,
> +						void *user)
> +{
> +	char **imei = user;

So this one implies character data (e.g. string), but...

> +	const unsigned char *data;
> +	unsigned int len;
> +
> +	if (comprehension_tlv_iter_get_tag(iter) !=
> +			STK_DATA_OBJECT_TYPE_IMEI)
> +		return FALSE;
> +
> +	len = comprehension_tlv_iter_get_length(iter);
> +	if (len != 8)
> +		return FALSE;
> +
> +	data = comprehension_tlv_iter_get_data(iter);
> +	memcpy(*imei, data, len);

Here you copy binary data into a string array.  Since IMEI is essentially bcd 
encoded I suggest you parse it into string form here.

> +
> +	return TRUE;
> +}
> +

Regards,
-Denis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 6/6] Add parser for help request objects
  2010-03-24  9:35         ` [PATCH 6/6] Add parser for help request objects Yang Gu
@ 2010-03-24 17:44           ` Denis Kenzior
  0 siblings, 0 replies; 12+ messages in thread
From: Denis Kenzior @ 2010-03-24 17:44 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2057 bytes --]

Hi Yang,

> ---
>  src/stkutil.c |   27 +++++++++++++++++++++++++++
>  1 files changed, 27 insertions(+), 0 deletions(-)
> 
> diff --git a/src/stkutil.c b/src/stkutil.c
> index 3e423b5..215013d 100644
> --- a/src/stkutil.c
> +++ b/src/stkutil.c
> @@ -50,6 +50,23 @@ struct gsm_sms_tpdu {
>  	unsigned char tpdu[164];
>  };
> 
> +/* For data object to indicate the existence */
> +static gboolean parse_dataobj_common_bool(struct comprehension_tlv_iter
>  *iter, +		void *user, enum stk_data_object_type type)
> +{
> +	gboolean *ret = user;
> +
> +	if (comprehension_tlv_iter_get_tag(iter) != type)
> +		return FALSE;
> +
> +	if (comprehension_tlv_iter_get_length(iter) != 0)
> +		return FALSE;
> +
> +	*ret = TRUE;
> +
> +	return TRUE;
> +}
> +
>  /* Defined in TS 102.223 Section 8.1 */
>  static gboolean parse_dataobj_address(struct comprehension_tlv_iter *iter,
>  					void *user)
> @@ -571,6 +588,14 @@ static gboolean parse_dataobj_imei(struct
>  comprehension_tlv_iter *iter, return TRUE;
>  }
> 
> +/* Defined in TS 102.223 Section 8.21 */
> +static gboolean parse_dataobj_help_request(struct comprehension_tlv_iter
>  *iter, +						void *user)
> +{
> +	return parse_dataobj_common_bool(iter, user,
> +				STK_DATA_OBJECT_TYPE_HELP_REQUEST);
> +}
> +

Your patch looks fine, but after looking at the spec I couldn't find any other 
data object that had this structure.  What else is this going to be used for?

>  /* Defined in TS 102.223 Section 8.31 */
>  static gboolean parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
>  					void *user)
> @@ -694,6 +719,8 @@ static dataobj_handler handler_for_type(enum
>  stk_data_object_type type) return parse_dataobj_location_info;
>  	case STK_DATA_OBJECT_TYPE_IMEI:
>  		return parse_dataobj_imei;
> +	case STK_DATA_OBJECT_TYPE_HELP_REQUEST:
> +		return parse_dataobj_help_request;
>  	case STK_DATA_OBJECT_TYPE_ICON_ID:
>  		return parse_dataobj_icon_id;
>  	case STK_DATA_OBJECT_TYPE_IMMEDIATE_RESPONSE:
> 

Regards,
-Denis

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/6] Add parser for location information objects
  2010-03-24  9:35 [PATCH 1/6] Add parser for location information objects Yang Gu
  2010-03-24  9:35 ` [PATCH 2/6] Add macro for ber-tlv more time Yang Gu
@ 2010-03-24 20:00 ` Denis Kenzior
  1 sibling, 0 replies; 12+ messages in thread
From: Denis Kenzior @ 2010-03-24 20:00 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 3878 bytes --]

Hi Yang,

> ---
>  src/simutil.c |    2 +-
>  src/simutil.h |    1 +
>  src/stkutil.c |   32 ++++++++++++++++++++++++++++++++
>  src/stkutil.h |    9 +++++++++
>  4 files changed, 43 insertions(+), 1 deletions(-)
> 
> diff --git a/src/simutil.c b/src/simutil.c
> index d9383b7..65ffa36 100644
> --- a/src/simutil.c
> +++ b/src/simutil.c
> @@ -538,7 +538,7 @@ static char *sim_network_name_parse(const unsigned char
>  *buffer, int length, return ret;
>  }
> 
> -static void parse_mcc_mnc(const guint8 *bcd, char *mcc, char *mnc)
> +void parse_mcc_mnc(const guint8 *bcd, char *mcc, char *mnc)

If this is becoming public api, then it should have a sim_ prefix like the rest 
of the functions in simutil.h.

>  {
>  	static const char digit_lut[] = "0123456789*#abd\0";
>  	guint8 digit;
> diff --git a/src/simutil.h b/src/simutil.h
> index 043c21f..09964a8 100644
> --- a/src/simutil.h
> +++ b/src/simutil.h
> @@ -181,6 +181,7 @@ const struct sim_eons_operator_info
>  *sim_eons_lookup(struct sim_eons *eons, const char *mnc);
>  void sim_eons_free(struct sim_eons *eons);
> 
> +void parse_mcc_mnc(const guint8 *bcd, char *mcc, char *mnc);
>  struct sim_spdi *sim_spdi_new(const guint8 *tlv, int length);
>  gboolean sim_spdi_lookup(struct sim_spdi *spdi,
>  				const char *mcc, const char *mnc);
> diff --git a/src/stkutil.c b/src/stkutil.c
> index 9c83f49..a6b0284 100644
> --- a/src/stkutil.c
> +++ b/src/stkutil.c
> @@ -519,6 +519,36 @@ error:
>  	return FALSE;
>  }
> 
> +/* Defined in TS 102.223 Section 8.19 */
> +static gboolean parse_dataobj_location_info(
> +		struct comprehension_tlv_iter *iter, void *user)
> +{
> +	struct stk_location_info *li = user;
> +	const unsigned char *data;
> +	unsigned int len;
> +
> +	if (comprehension_tlv_iter_get_tag(iter) !=
> +			STK_DATA_OBJECT_TYPE_LOCATION_INFO)
> +		return FALSE;
> +
> +	len = comprehension_tlv_iter_get_length(iter);
> +	if ((len != 5) && (len != 7) && (len != 9))
> +		return FALSE;
> +
> +	data = comprehension_tlv_iter_get_data(iter);
> +
> +	parse_mcc_mnc(data, li->mcc, li->mnc);
> +	memcpy(li->lac_tac, data + 3, 2);
> +
> +	if (len >= 7)
> +		memcpy(li->cell_id, data+5, 2);
> +
> +	if (len == 9)
> +		memcpy(li->ext_cell_id, data+7, 2);

See my comments below, these should be proper integers.  Make sure the byte-
ordering is correct.

> +
> +	return TRUE;
> +}
> +
>  /* Defined in TS 102.223 Section 8.31 */
>  static gboolean parse_dataobj_icon_id(struct comprehension_tlv_iter *iter,
>  					void *user)
> @@ -638,6 +668,8 @@ static dataobj_handler handler_for_type(enum
>  stk_data_object_type type) return parse_dataobj_tone;
>  	case STK_DATA_OBJECT_TYPE_FILE_LIST:
>  		return parse_dataobj_file_list;
> +	case STK_DATA_OBJECT_TYPE_LOCATION_INFO:
> +		return parse_dataobj_location_info;
>  	case STK_DATA_OBJECT_TYPE_ICON_ID:
>  		return parse_dataobj_icon_id;
>  	case STK_DATA_OBJECT_TYPE_IMMEDIATE_RESPONSE:
> diff --git a/src/stkutil.h b/src/stkutil.h
> index 93ac854..00c985a 100644
> --- a/src/stkutil.h
> +++ b/src/stkutil.h
> @@ -345,6 +345,15 @@ struct stk_result {
>  	unsigned char *additional;
>  };
> 
> +/* Defined in TS 102.223 Section 8.19 */
> +struct stk_location_info {
> +	char mnc[OFONO_MAX_MNC_LENGTH + 1];
> +	char mcc[OFONO_MAX_MCC_LENGTH + 1];
> +	unsigned char lac_tac[2];

This should be just unsigned short

> +	unsigned char cell_id[2];

And this one

> +	unsigned char ext_cell_id[2];

And this one too

You also need a ofono_bool_t to signify the presence of lac/ci/ext_ci

> +};
> +
>  /* Define the struct of single file in TS102.223 Section 8.18.
>   * According to TS 11.11 Section 6.2, each file id has two bytes, and the
>   * maximum Dedicated File level is 2. So the maximum size of file is 8,
>  which
> 

Regards,
-Denis

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2010-03-24 20:00 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-24  9:35 [PATCH 1/6] Add parser for location information objects Yang Gu
2010-03-24  9:35 ` [PATCH 2/6] Add macro for ber-tlv more time Yang Gu
2010-03-24  9:35   ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Yang Gu
2010-03-24  9:35     ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Yang Gu
2010-03-24  9:35       ` [PATCH 5/6] Add parser for imei objects Yang Gu
2010-03-24  9:35         ` [PATCH 6/6] Add parser for help request objects Yang Gu
2010-03-24 17:44           ` Denis Kenzior
2010-03-24 17:38         ` [PATCH 5/6] Add parser for imei objects Denis Kenzior
2010-03-24 17:15       ` [PATCH 4/6] Add macro name of comprehension tlv cdma sms tpdu Denis Kenzior
2010-03-24 17:03     ` [PATCH 3/6] Unify some macro names of ber-tlv and comprehension tlv Denis Kenzior
2010-03-24 17:15   ` [PATCH 2/6] Add macro for ber-tlv more time Denis Kenzior
2010-03-24 20:00 ` [PATCH 1/6] Add parser for location information objects Denis Kenzior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.