diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-10 15:21:34 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-10 15:21:34 +0100 |
commit | c464491b0be0fb9b845ae6aababddc1b17ffda30 (patch) | |
tree | fe7bb6a9ac00827ccf85a2317225f82f30b079ad /openbsc/src/gsm_04_11.c | |
parent | 368a0a73d4f673c9baa8dc61585e7868fea923c3 (diff) |
sms: Move the sms_from_text to gsm_04_11
Move the SMS from text code from the VTY interface into the
gsm_04_11.c code next to the sms_alloc and sms_free.
Diffstat (limited to 'openbsc/src/gsm_04_11.c')
-rw-r--r-- | openbsc/src/gsm_04_11.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/openbsc/src/gsm_04_11.c b/openbsc/src/gsm_04_11.c index fc9b0862c..a7c6f667d 100644 --- a/openbsc/src/gsm_04_11.c +++ b/openbsc/src/gsm_04_11.c @@ -117,6 +117,31 @@ void sms_free(struct gsm_sms *sms) talloc_free(sms); } +struct gsm_sms *sms_from_text(struct gsm_subscriber *receiver, const char *text) +{ + struct gsm_sms *sms = sms_alloc(); + + if (!sms) + return NULL; + + sms->receiver = subscr_get(receiver); + strncpy(sms->text, text, sizeof(sms->text)-1); + + /* FIXME: don't use ID 1 static */ + sms->sender = subscr_get_by_id(receiver->net, 1); + sms->reply_path_req = 0; + sms->status_rep_req = 0; + sms->ud_hdr_ind = 0; + sms->protocol_id = 0; /* implicit */ + sms->data_coding_scheme = 0; /* default 7bit */ + strncpy(sms->dest_addr, receiver->extension, sizeof(sms->dest_addr)-1); + /* Generate user_data */ + sms->user_data_len = gsm_7bit_encode(sms->user_data, sms->text); + + return sms; +} + + static void send_signal(int sig_no, struct gsm_trans *trans, struct gsm_sms *sms, |