4 * Copyright (c) 2000 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
7 * Sooyoung Ha <yoosah.ha@samsung.com>
8 * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
29 /***************************************************************************************
35 * Description: libvgsm interface.
39 ****************************************************************************************/
46 #include "../vmodem/include/sat/sat_values.h"
49 int vgsm_proactive_cmd_send(LXT_HANDLE * handle,int command)
51 printf("\[LIBVGSM-SIM] vgsm_proactive_cmd_send\n\n");
56 return lxt_msg_send_message( handle->fd,
58 GSM_SAT_PROACTIVE_COMMAND_SEND,
64 int vgsm_sat_display_text(LXT_HANDLE * handle,char priority,char clear_msg,char* textstring,char coding_scheme,char icon_identifier_flag,char icon_qualifier,char* icon_identifier,char immediate_response,char duration,char duration_unit )
66 printf("\n vgsm_sat_display_text\n");
74 dp_text = malloc(sizeof(DP_TEXT));
77 memset(dp_text,0,sizeof(DP_TEXT));
79 dp_text->priority = priority;
80 dp_text->clear_msg = clear_msg;
81 memcpy(dp_text->text_string,textstring,strlen(textstring));
82 dp_text->coding_scheme = coding_scheme;
83 dp_text->icon_identifier_flag = icon_identifier_flag;
84 dp_text->icon_qualifier = icon_qualifier;
85 dp_text->icon_identifier = 0;
86 dp_text->immediate_response = immediate_response;
87 dp_text->duration = duration;
88 dp_text->duration_unit = duration_unit;
90 //printf("IN libvgsm - text is %s and netxt test is %s",textstring,dp_text->text_string);
92 ret = lxt_msg_send_message
96 GSM_SAT_PROACTIVE_DISPLAY_TEXT,
108 int vgsm_sat_get_inkey(LXT_HANDLE * handle,char cmd_detail,char* textstring,char coding_scheme,char icon_identifier_flag,char icon_qualifier,char* icon_identifier,char immediate_response,char duration,char duration_unit )
110 printf("\n vgsm_sat_get_inkey\n");
115 GET_INKEY *get_inkey;
118 get_inkey = malloc(sizeof(GET_INKEY));
121 memset(get_inkey,0,sizeof(GET_INKEY));
123 get_inkey->cmd_detail = cmd_detail;
124 memcpy(get_inkey->text_string,textstring,strlen(textstring));
125 get_inkey->coding_scheme = coding_scheme;
126 get_inkey->icon_identifier_flag = icon_identifier_flag;
127 get_inkey->icon_qualifier = icon_qualifier;
128 get_inkey->icon_identifier = 0;
129 get_inkey->immediate_response = immediate_response;
130 get_inkey->duration = duration;
131 get_inkey->duration_unit = duration_unit;
133 ret = lxt_msg_send_message
137 GSM_SAT_PROACTIVE_GET_INKEY,
149 int vgsm_sat_get_input(LXT_HANDLE * handle,char cmd_detail,char* textstring,char coding_scheme,char icon_identifier_flag,char icon_qualifier,char* icon_identifier,char immediate_response,char duration,char duration_unit )
151 printf("\n vgsm_sat_get_input\n");
156 GET_INPUT *get_input;
158 get_input = malloc(sizeof(GET_INPUT));
161 memset(get_input,0,sizeof(GET_INPUT));
163 get_input->cmd_detail = cmd_detail;
164 memcpy(get_input->text_string,textstring,strlen(textstring));
165 get_input->coding_scheme = coding_scheme;
166 get_input->icon_identifier_flag = icon_identifier_flag;
167 get_input->icon_qualifier = icon_qualifier;
168 get_input->icon_identifier = 0;
169 get_input->immediate_response = immediate_response;
170 get_input->duration = duration;
171 get_input->duration_unit = duration_unit;
173 ret = lxt_msg_send_message
177 GSM_SAT_PROACTIVE_GET_INPUT,
189 int vgsm_sat_set_up_menu(LXT_HANDLE * handle,unsigned char cmd_detail,int num,void * set_up_item )
191 printf("\n vgsm_sat_set_up_menu \n");
199 data = malloc(num * sizeof(SET_MENU) + 2);
202 memset(data,0,num *sizeof(SET_MENU) + 2);
204 data[0] =(unsigned char)num;
205 data[1] = cmd_detail;
206 memcpy(&data[2],(unsigned char *)set_up_item,num *sizeof(SET_MENU));
207 printf("data num is <%x>\n",data[0]);
208 printf("data cmd_detail is <%x>\n",data[1]);
210 ret = lxt_msg_send_message
214 GSM_SAT_PROACTIVE_SET_MENU,
215 (num * sizeof(SET_MENU) + 2),
226 int vgsm_sat_select_item(LXT_HANDLE * handle, unsigned char cmd_detail, int num, void * set_up_item )
228 printf("\n vgsm_sat_select_item \n");
236 data = malloc(num * sizeof(SET_MENU) + 2);
239 memset(data,0,num *sizeof(SET_MENU) + 2);
241 data[0] =(unsigned char)num;
242 data[1] = cmd_detail;
243 memcpy(&data[2],(unsigned char *)set_up_item,num *sizeof(SET_MENU));
245 printf("data num is <%x>\n",data[0]);
246 printf("data cmd_detail is <%x>\n",data[1]);
248 ret = lxt_msg_send_message
252 GSM_SAT_PROACTIVE_SELECT_ITEM,
253 (num * sizeof(SET_MENU) + 2),
264 int vgsm_sat_send_sms(LXT_HANDLE * handle, unsigned char cmd_detail, unsigned char address, char *number, unsigned char* sms_tpdu )
266 printf("\n vgsm_sat_send_sms \n");
271 //unsigned char *data;
272 SEND_SMS *send_sms_packet;
274 send_sms_packet = malloc(sizeof(SEND_SMS));
277 memset(send_sms_packet,0,sizeof(SEND_SMS));
279 send_sms_packet->cmd_detail=cmd_detail;
280 send_sms_packet->address=address ;
281 memcpy(send_sms_packet->dial_num,number,strlen(number));
282 //080117 - remove compile warning msg due to sms_tpdu.
283 memcpy(send_sms_packet->tpdu_sms,sms_tpdu,strlen((char*)sms_tpdu));
285 printf("\n SMS DIAL NUM is %s",send_sms_packet->dial_num);
287 ret = lxt_msg_send_message
291 GSM_SAT_PROACTIVE_SEND_SMS,
297 free(send_sms_packet);
303 int vgsm_sat_set_up_call(LXT_HANDLE * handle,unsigned char cmd_detail,char* dial_number,char *alpha_user,/*char *alpha_call ,*/unsigned char address,unsigned char options,char duration_unit)
305 printf("\n vgsm_sat_send_sms \n");
310 unsigned char *data = NULL;
311 unsigned char *pdata = NULL;
314 // char alpha_call_len;
320 case 0x00 : // not options
321 dial_len = strlen(dial_number);
322 size = 1+1+1+dial_len+1;
323 data = malloc(size); // option(1) +cmd_detail(1)+dial len(1)+dial size+ address(1)
328 *pdata++ =cmd_detail ;
330 memcpy(pdata,dial_number,dial_len);
337 dial_len = strlen(dial_number);
338 alpha_user_len = strlen(alpha_user);
339 //alpha_call_len = strlen(alpha_call);
340 size = 1+1+1+dial_len+1+alpha_user_len+1+/*alpha_call_len+*/1;
341 data = malloc(size); //option(1)+ cmd_detail(1)+dial len(1)+dial size+alpha_user len(1)alpha_user size++alpha_call len(1)+alpha_call size+ address(1)
346 *pdata++ =cmd_detail ;
349 memcpy(pdata,dial_number,dial_len);
352 *pdata++ = alpha_user_len;
353 memcpy(pdata,alpha_user,alpha_user_len);
354 pdata += alpha_user_len;
357 *pdata++ = alpha_call_len;
358 memcpy(pdata,alpha_call,alpha_call_len);
359 pdata += alpha_call_len;
365 case 0x02: // DURATION
366 dial_len = strlen(dial_number);
367 dial_len = strlen(dial_number);
368 size = 1+1+1+dial_len+1+1;
369 data = malloc(size); //option(1)+ cmd_detail(1)+dial len(1)+dial size+ address(1)+unit(1)
374 *pdata++ =cmd_detail ;
376 memcpy(pdata,dial_number,dial_len);
379 *pdata++ = duration_unit;
383 case 0x03: // alpha_ & DURATION
384 dial_len = strlen(dial_number);
385 alpha_user_len = strlen(alpha_user);
386 //alpha_call_len = strlen(alpha_call);
387 size = 1+1+1+dial_len+1+alpha_user_len+1+/*alpha_call_len+*/1+1;
388 data = malloc(size); // option(1)+cmd_detail(1)+dial len(1)+dial size+alpha_user len(1)alpha_user size++alpha_call len(1)+alpha_call size+ address(1)+unit(1)
393 *pdata++ =cmd_detail ;
396 memcpy(pdata,dial_number,dial_len);
399 *pdata++ = alpha_user_len;
400 memcpy(pdata,alpha_user,alpha_user_len);
401 pdata += alpha_user_len;
403 *pdata++ = alpha_call_len;
404 memcpy(pdata,alpha_call,alpha_call_len);
405 pdata += alpha_call_len;
408 *pdata++ = duration_unit;
410 printf("\n @- dial_number is %s",dial_number);
411 printf("\n @- alpha_user is %s",alpha_user);
412 // printf("\n @- alpha_call is %s",alpha_call);
418 printf("\n vgsm_sat_set_up_call \n");
420 ret = lxt_msg_send_message
424 GSM_SAT_PROACTIVE_SET_UP_CALL,