From f5423c22b8e60bd9ddd05695135ed0713ae07143 Mon Sep 17 00:00:00 2001 From: laforge Date: Thu, 16 Aug 2007 04:20:03 +0000 Subject: From 5b7c50fd08b8f76f761958c8a8243e6c23118fa3 Mon Sep 17 00:00:00 2001 From: Andrzej Zaborowski Date: Thu, 12 Jul 2007 14:26:46 +0200 Subject: [PATCH] Incoming SMS events This is a proposed patch to emit a gsmd event when a new SMS arrives, also modifies libgsmd-tool to display the notification. It makes sms_cb.c compile but only really implements the bits necessary to make it build and for the notifications to work. I chose AT+CNMI mode 1 (i.e. store messages in memory and report the location through +CMTI, rather than print the message right away through +CMT) because the parser doesn't support multiline unsolicited responses - in fact it can't support those because in a situation when a normal command is executing and an unsolicited response comes in (which is the case when sending a message to yourself) it is impossible for the parser to distinguish whether the line after the unsolicited response is part of that response or part of the command's response. git-svn-id: http://svn.openmoko.org/trunk/src/target/gsm@2711 99fdad57-331a-0410-800a-d7fa5415bdb3 --- include/gsmd/sms.h | 2 ++ include/gsmd/usock.h | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) (limited to 'include/gsmd') diff --git a/include/gsmd/sms.h b/include/gsmd/sms.h index 145b585..ac16509 100644 --- a/include/gsmd/sms.h +++ b/include/gsmd/sms.h @@ -5,6 +5,8 @@ #include +int sms_cb_init(struct gsmd *gsmd); + int sms_pdu_make_smssubmit(char *dest, const struct gsmd_sms_submit *src); int sms_pdu_to_msg(struct gsmd_sms_list *dst, const u_int8_t *src, int pdulen, int len); diff --git a/include/gsmd/usock.h b/include/gsmd/usock.h index 631238a..f42a766 100644 --- a/include/gsmd/usock.h +++ b/include/gsmd/usock.h @@ -55,6 +55,11 @@ enum gsmd_msg_phone { GSMD_PHONE_POWERDOWN = 2, }; +enum gsmd_msg_cb { + GSMD_CB_SUBSCRIBE = 1, + GSMD_CB_UNSUBSCRIBE = 2, +}; + enum gsmd_msg_network { GSMD_NETWORK_REGISTER = 1, GSMD_NETWORK_SIGQ_GET = 2, @@ -65,11 +70,15 @@ enum gsmd_msg_network { }; enum gsmd_msg_sms { - GSMD_SMS_LIST = 1, - GSMD_SMS_READ = 2, - GSMD_SMS_SEND = 3, - GSMD_SMS_WRITE = 4, - GSMD_SMS_DELETE = 5, + GSMD_SMS_LIST = 1, + GSMD_SMS_READ = 2, + GSMD_SMS_SEND = 3, + GSMD_SMS_WRITE = 4, + GSMD_SMS_DELETE = 5, + GSMD_SMS_GET_MSG_STORAGE = 6, + GSMD_SMS_SET_MSG_STORAGE = 7, + GSMD_SMS_GET_SERVICE_CENTRE = 8, + GSMD_SMS_SET_SERVICE_CENTRE = 9, }; /* SMS stat from 3GPP TS 07.05, Clause 3.1 */ @@ -248,8 +257,8 @@ struct gsmd_evt_auxdata { struct gsmd_addr addr; } colp; struct { - /* TBD */ - struct gsmd_addr addr; + u_int8_t memtype; + int index; } sms; struct { enum gsmd_pin_type type; -- cgit v1.2.3