From b97df6c14964a74476e2327f426dd2b7d9f40ee0 Mon Sep 17 00:00:00 2001 From: erin_yueh Date: Tue, 22 Jan 2008 13:41:36 +0000 Subject: gsmd: retrieve imsi value before sending at command (Sean Chiang) git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@3915 99fdad57-331a-0410-800a-d7fa5415bdb3 --- src/gsmd/gsmd.c | 13 +++++++++++++ src/gsmd/usock.c | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gsmd/gsmd.c b/src/gsmd/gsmd.c index f5525a6..fdd33de 100644 --- a/src/gsmd/gsmd.c +++ b/src/gsmd/gsmd.c @@ -147,6 +147,16 @@ static int gsmd_test_atcb(struct gsmd_atcmd *cmd, void *ctx, char *resp) return 0; } +static int gsmd_get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) +{ + struct gsmd *g = ctx; + + DEBUGP("imsi : %s\n", resp); + strcpy(g->imsi, resp); + + return 0; +} + int gsmd_simplecmd(struct gsmd *gsmd, char *cmdtxt) { struct gsmd_atcmd *cmd; @@ -178,6 +188,9 @@ static int gsmd_initsettings2(struct gsmd *gsmd) /* configure message format as PDU mode*/ /* FIXME: TEXT mode support!! */ rc |= gsmd_simplecmd(gsmd, "AT+CMGF=0"); + /* reueset imsi */ + atcmd_submit(gsmd, atcmd_fill("AT+CIMI", 7+1, + &gsmd_get_imsi_cb, gsmd, 0, NULL)); sms_cb_init(gsmd); diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c index 18c6662..0164c1c 100644 --- a/src/gsmd/usock.c +++ b/src/gsmd/usock.c @@ -638,7 +638,8 @@ static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph, gu->gsmd->dev_state.on = 0; break; case GSMD_PHONE_GET_IMSI: - cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL); + return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI, + 0, strlen(gu->gsmd->imsi), gu->gsmd->imsi); break; default: -- cgit v1.2.3