Gammu internals  1.38.0
n9210.c
Go to the documentation of this file.
1 /* (c) 2002-2003 by Marcin Wiacek */
2 
3 #include <gammu-config.h>
4 
5 #ifdef GSM_ENABLE_NOKIA9210
6 
7 #include <string.h>
8 #include <time.h>
9 
10 #include "../../../misc/coding/coding.h"
11 #include "../../../gsmcomon.h"
12 #include "../../../service/gsmlogo.h"
13 #include "../../../service/gsmnet.h"
14 #include "../../../service/sms/gsmmulti.h"
15 #include "../../pfunc.h"
16 #include "../nfunc.h"
17 #include "n9210.h"
18 #include "dct3func.h"
19 
20 static GSM_Error N9210_GetBitmap(GSM_StateMachine *s, GSM_Bitmap *Bitmap)
21 {
22  unsigned char OpReq[] = {N6110_FRAME_HEADER, 0x70};
23 
24  s->Phone.Data.Bitmap=Bitmap;
25  switch (Bitmap->Type) {
26  case GSM_OperatorLogo:
27  smprintf(s, "Getting operator logo\n");
28  /* This is like DCT3_GetNetworkInfo */
29  return GSM_WaitFor (s, OpReq, 4, 0x0a, 4, ID_GetBitmap);
30  case GSM_StartupLogo:
31  smprintf(s, "Getting startup logo\n");
32  return N71_92_GetPhoneSetting(s, ID_GetBitmap, 0x15);
34  smprintf(s, "Getting welcome note\n");
35  return N71_92_GetPhoneSetting(s, ID_GetBitmap, 0x02);
36  default:
37  break;
38  }
39  return ERR_NOTSUPPORTED;
40 }
41 
42 static GSM_Error N9210_ReplySetOpLogo(GSM_Protocol_Message *msg UNUSED, GSM_StateMachine *s)
43 {
44  smprintf(s, "Operator logo clear/set\n");
45  return ERR_NONE;
46 }
47 
48 static GSM_Error N9210_SetBitmap(GSM_StateMachine *s, GSM_Bitmap *Bitmap)
49 {
50  GSM_Error error;
52  size_t Width, Height, i,count=3;
53  unsigned char req[600] = { N7110_FRAME_HEADER };
54  unsigned char reqStartup[1000] = {
55  N6110_FRAME_HEADER, 0xec,
56  0x15, /* Startup Logo setting */
57  0x04, 0x00, 0x00, 0x00, 0x30, 0x00,
58  0x02, 0xc0, 0x54, 0x00, 0x03, 0xc0,
59  0xf8, 0xf8, 0x01, 0x04};
60  unsigned char reqStartupText[500] = {
61  N7110_FRAME_HEADER, 0xec,
62  0x02}; /* Startup Text setting */
63  unsigned char reqClrOp[] = {
64  N7110_FRAME_HEADER, 0xAF,
65  0x02}; /* Number of logo = 0 - 0x04 */
66 
67  switch (Bitmap->Type) {
68  case GSM_StartupLogo:
69  if (Bitmap->Location!=1) return ERR_NOTSUPPORTED;
71  PHONE_GetBitmapWidthHeight(Type, &Width, &Height);
72  PHONE_EncodeBitmap(Type, reqStartup + 21, Bitmap);
73  smprintf(s, "Setting startup logo\n");
74  return GSM_WaitFor (s, reqStartup, 21+PHONE_GetBitmapSize(Type,0,0), 0x7A, 4, ID_SetBitmap);
76  /* Nokia bug: Unicode text is moved one char to left */
77  CopyUnicodeString(reqStartupText + 4, Bitmap->Text);
78  reqStartupText[4] = 0x02;
79  i = 5 + UnicodeLength(Bitmap->Text) * 2;
80  reqStartupText[i++] = 0;
81  reqStartupText[i++] = 0;
82  return GSM_WaitFor (s, reqStartupText, i, 0x7A, 4, ID_SetBitmap);
83  case GSM_OperatorLogo:
84  /* First part for clearing logo */
85  if (!strcmp(Bitmap->NetworkCode,"000 00")) {
86  for (i=0;i<5;i++) {
87  reqClrOp[4] = i;
88  error=GSM_WaitFor (s, reqClrOp, 5, 0x0A, 4, ID_SetBitmap);
89  if (error != ERR_NONE) return error;
90  }
91  }
93  req[count++] = 0xA3;
94  req[count++] = 0x01;
95  req[count++] = 0x00; /* Logo removed */
96  NOKIA_EncodeNetworkCode(req+count, "000 00");
97  count = count + 3;
98  req[count++] = 0x00;
99  req[count++] = 0x04;
100  req[count++] = 0x08; /* Length of rest + 2 */
101  memcpy(req+count, "\x00\x00\x00\x00\x00\x00", 6);
102  count += 6;
103  error=GSM_WaitFor (s, req, count, 0x0A, 4, ID_SetBitmap);
104  if (error != ERR_NONE) return error;
105  /* We wanted only clear - now exit */
106  if (!strcmp(Bitmap->NetworkCode,"000 00")) return error;
107 
108  /* Now setting logo */
109  count=3;
110  req[count++] = 0xA3;
111  req[count++] = 0x01;
112  req[count++] = 0x01; /* Logo set */
113  NOKIA_EncodeNetworkCode(req+count, Bitmap->NetworkCode);
114  count = count + 3;
115  req[count++] = 0x00;
116  req[count++] = 0x04;
117  req[count++] = PHONE_GetBitmapSize(Type,0,0)+8;
118  PHONE_GetBitmapWidthHeight(Type, &Width, &Height);
119  req[count++] = Width;
120  req[count++] = Height;
121  req[count++] = PHONE_GetBitmapSize(Type,0,0);
122  req[count++] = 0x00;
123  req[count++] = 0x00;
124  req[count++] = 0x00;
125  PHONE_EncodeBitmap(Type, req+count, Bitmap);
126  return GSM_WaitFor (s, req, count+PHONE_GetBitmapSize(Type,0,0), 0x0A, 4, ID_SetBitmap);
127  default:
128  break;
129  }
130  return ERR_NOTSUPPORTED;
131 }
132 
133 static GSM_Error N9210_ReplyIncomingSMS(GSM_Protocol_Message *msg, GSM_StateMachine *s)
134 {
135  GSM_SMSMessage sms;
136  GSM_Phone_Data *Data = &s->Phone.Data;
137 
138 #ifdef DEBUG
139  smprintf(s, "SMS message received\n");
140  sms.State = SMS_UnRead;
141  sms.InboxFolder = TRUE;
142  DCT3_DecodeSMSFrame(s, &sms,msg->Buffer+5);
143 #endif
144  if (Data->EnableIncomingSMS && s->User.IncomingSMS!=NULL) {
145  sms.State = SMS_UnRead;
146  sms.InboxFolder = TRUE;
147  DCT3_DecodeSMSFrame(s, &sms,msg->Buffer+5);
148 
149  s->User.IncomingSMS(s, &sms, s->User.IncomingSMSUserData);
150  }
151  return ERR_NONE;
152 }
153 
154 #ifdef GSM_ENABLE_N71_92INCOMINGINFO
155 static GSM_Error N9210_ReplySetIncomingSMS(GSM_Protocol_Message *msg, GSM_StateMachine *s)
156 {
157  switch (msg->Buffer[3]) {
158  case 0x0e:
160  smprintf(s, "Incoming SMS enabled\n");
161  return ERR_NONE;
162  case 0x0f:
163  smprintf(s, "Error enabling incoming SMS\n");
164  switch (msg->Buffer[4]) {
165  case 0x0c:
166  smprintf(s, "No PIN ?\n");
167  return ERR_SECURITYERROR;
168  default:
169  smprintf(s, "ERROR: unknown %i\n",msg->Buffer[4]);
170  }
171  }
172  return ERR_UNKNOWNRESPONSE;
173 }
174 
175 static GSM_Error N9210_SetIncomingSMS(GSM_StateMachine *s, gboolean enable)
176 {
177  unsigned char req[] = {N6110_FRAME_HEADER, 0x0d, 0x00, 0x00, 0x02};
178 
179  if (enable!=s->Phone.Data.EnableIncomingSMS) {
180  if (enable) {
181  smprintf(s, "Enabling incoming SMS\n");
182  return GSM_WaitFor (s, req, 7, 0x02, 4, ID_SetIncomingSMS);
183  } else {
185  smprintf(s, "Disabling incoming SMS\n");
186  }
187  }
188  return ERR_NONE;
189 }
190 #else
191 static GSM_Error N9210_SetIncomingSMS(GSM_StateMachine *s UNUSED, gboolean enable UNUSED)
192 {
193  return ERR_SOURCENOTAVAILABLE;
194 }
195 #endif
196 
197 static GSM_Error N9210_Initialise (GSM_StateMachine *s)
198 {
199 #ifdef DEBUG
201 
202 #ifdef GSM_ENABLE_N71_92INCOMINGINFO
203  N9210_SetIncomingSMS(s,TRUE);
204 #endif
205 
206 #endif
207  return ERR_NONE;
208 }
209 
210 GSM_Error N9210_AnswerCall(GSM_StateMachine *s, int ID, gboolean all)
211 {
212  if (!all) return DCT3DCT4_AnswerCall(s,ID);
213  return DCT3_AnswerAllCalls(s);
214 }
215 
216 static GSM_Reply_Function N9210ReplyFunctions[] = {
217  {DCT3_ReplySendSMSMessage, "\x02",0x03,0x02,ID_IncomingFrame },
218  {DCT3_ReplySendSMSMessage, "\x02",0x03,0x03,ID_IncomingFrame },
219 #ifdef GSM_ENABLE_N71_92INCOMINGINFO
220  {N9210_ReplySetIncomingSMS, "\x02",0x03,0x0E,ID_SetIncomingSMS },
221  {N9210_ReplySetIncomingSMS, "\x02",0x03,0x0F,ID_SetIncomingSMS },
222 #endif
223  {N9210_ReplyIncomingSMS, "\x02",0x03,0x11,ID_IncomingFrame },
224 #ifdef GSM_ENABLE_CELLBROADCAST
225  {DCT3_ReplySetIncomingCB, "\x02",0x03,0x21,ID_SetIncomingCB },
226  {DCT3_ReplySetIncomingCB, "\x02",0x03,0x22,ID_SetIncomingCB },
227  {DCT3_ReplyIncomingCB, "\x02",0x03,0x23,ID_IncomingFrame },
228 #endif
229  {DCT3_ReplySetSMSC, "\x02",0x03,0x31,ID_SetSMSC },
230  {DCT3_ReplyGetSMSC, "\x02",0x03,0x34,ID_GetSMSC },
231  {DCT3_ReplyGetSMSC, "\x02",0x03,0x35,ID_GetSMSC },
232 
233  {N61_91_ReplySetOpLogo, "\x05",0x03,0x31,ID_SetBitmap },
234  {N61_91_ReplySetOpLogo, "\x05",0x03,0x32,ID_SetBitmap },
235 
236  {DCT3_ReplyGetNetworkInfo, "\x0A",0x03,0x71,ID_GetNetworkInfo },
237  {DCT3_ReplyGetNetworkInfo, "\x0A",0x03,0x71,ID_IncomingFrame },
239  {N9210_ReplySetOpLogo, "\x0A",0x03,0xA4,ID_SetBitmap },
240  {N9210_ReplySetOpLogo, "\x0A",0x03,0xB0,ID_SetBitmap },
241 
243 
244  {DCT3_ReplySetDateTime, "\x19",0x03,0x61,ID_SetDateTime },
245  {DCT3_ReplyGetDateTime, "\x19",0x03,0x63,ID_GetDateTime },
246 
247  {DCT3_ReplyEnableSecurity, "\x40",0x02,0x64,ID_EnableSecurity },
248  {DCT3_ReplyGetIMEI, "\x40",0x02,0x66,ID_GetIMEI },
249  {DCT3_ReplyDialCommand, "\x40",0x02,0x7C,ID_DialVoice },
250  {DCT3_ReplyDialCommand, "\x40",0x02,0x7C,ID_CancelCall },
251  {DCT3_ReplyDialCommand, "\x40",0x02,0x7C,ID_AnswerCall },
252  {DCT3_ReplyNetmonitor, "\x40",0x02,0x7E,ID_Netmonitor },
253  {NOKIA_ReplyGetPhoneString, "\x40",0x02,0xC8,ID_GetHardware },
254  {NOKIA_ReplyGetPhoneString, "\x40",0x02,0xC8,ID_GetPPM },
255  {NOKIA_ReplyGetPhoneString, "\x40",0x02,0xCA,ID_GetProductCode },
257  {NOKIA_ReplyGetPhoneString, "\x40",0x02,0xCC,ID_GetOriginalIMEI },
258 
259  {N71_92_ReplyPhoneSetting, "\x7a",0x04,0x02,ID_GetBitmap },
260  {N71_92_ReplyPhoneSetting, "\x7a",0x04,0x02,ID_SetBitmap },
261  {N71_92_ReplyPhoneSetting, "\x7a",0x04,0x15,ID_GetBitmap },
262  {N71_92_ReplyPhoneSetting, "\x7a",0x04,0x15,ID_SetBitmap },
263 
264  {DCT3DCT4_ReplyGetModelFirmware,"\xD2",0x02,0x00,ID_GetModel },
266 
267  {NULL, "\x00",0x00,0x00,ID_None }
268 };
269 
270 GSM_Phone_Functions N9210Phone = {
271  "9210|9210i",
272  N9210ReplyFunctions,
273  NOTSUPPORTED, /* Install */
274  N9210_Initialise,
277  NOTSUPPORTED, /* ShowStartInfo */
281  DCT3_GetIMEI,
286  DCT3_GetPPM,
287  NOTSUPPORTED, /* GetSIMIMSI */
290  NOTIMPLEMENTED, /* GetAlarm */
291  NOTIMPLEMENTED, /* SetAlarm */
292  NOTSUPPORTED, /* GetLocale */
293  NOTSUPPORTED, /* SetLocale */
294  NOTIMPLEMENTED, /* PressKey */
295  NOTIMPLEMENTED, /* Reset */
296  NOTIMPLEMENTED, /* ResetPhoneSettings */
297  NOTSUPPORTED, /* EnterSecurityCode */
298  NOTSUPPORTED, /* GetSecurityStatus */
299  NOTSUPPORTED, /* GetDisplayStatus */
300  NOTIMPLEMENTED, /* SetAutoNetworkLogin */
304  NOTSUPPORTED, /* GetCategory */
305  NOTSUPPORTED, /* AddCategory */
306  NOTSUPPORTED, /* GetCategoryStatus */
307  NOTIMPLEMENTED, /* GetMemoryStatus */
308  NOTIMPLEMENTED, /* GetMemory */
309  NOTIMPLEMENTED, /* GetNextMemory */
310  NOTIMPLEMENTED, /* SetMemory */
311  NOTIMPLEMENTED, /* AddMemory */
312  NOTIMPLEMENTED, /* DeleteMemory */
313  NOTIMPLEMENTED, /* DeleteAllMemory */
314  NOTIMPLEMENTED, /* GetSpeedDial */
315  NOTIMPLEMENTED, /* SetSpeedDial */
316  DCT3_GetSMSC,
317  DCT3_SetSMSC, /* FIXME: test it */
318  NOTIMPLEMENTED, /* GetSMSStatus */
319  NOTIMPLEMENTED, /* GetSMS */
320  NOTIMPLEMENTED, /* GetNextSMS */
321  NOTIMPLEMENTED, /* SetSMS */
322  NOTIMPLEMENTED, /* AddSMS */
323  NOTIMPLEMENTED, /* DeleteSMS */
325  NOTSUPPORTED, /* SendSavedSMS */
326  NOTSUPPORTED, /* SetFastSMSSending */
327  N9210_SetIncomingSMS,
329  NOTIMPLEMENTED, /* GetSMSFolders */
330  NOTSUPPORTED, /* AddSMSFolder */
331  NOTSUPPORTED, /* DeleteSMSFolder */
333  NOTIMPLEMENTED, /* DialService */
334  N9210_AnswerCall,
336  NOTSUPPORTED, /* HoldCall */
337  NOTSUPPORTED, /* UnholdCall */
338  NOTSUPPORTED, /* ConferenceCall */
339  NOTSUPPORTED, /* SplitCall */
340  NOTSUPPORTED, /* TransferCall */
341  NOTSUPPORTED, /* SwitchCall */
342  NOTSUPPORTED, /* GetCallDivert */
343  NOTSUPPORTED, /* SetCallDivert */
344  NOTSUPPORTED, /* CancelAllDiverts */
345  NOTSUPPORTED, /* SetIncomingCall */
346  NOTIMPLEMENTED, /* SetIncomingUSSD */
347  NOTSUPPORTED, /* SendDTMF */
348  NOTIMPLEMENTED, /* GetRingtone */
349  NOTIMPLEMENTED, /* SetRingtone */
350  NOTSUPPORTED, /* GetRingtonesInfo */
351  NOTSUPPORTED, /* DeleteUserRingtones */
352  NOTSUPPORTED, /* PlayTone */
353  NOTIMPLEMENTED, /* GetWAPBookmark */
354  NOTIMPLEMENTED, /* SetWAPBookmark */
355  NOTIMPLEMENTED, /* DeleteWAPBookmark */
356  NOTIMPLEMENTED, /* GetWAPSettings */
357  NOTSUPPORTED, /* SetWAPSettings */
358  NOTSUPPORTED, /* GetSyncMLSettings */
359  NOTSUPPORTED, /* SetSyncMLSettings */
360  NOTSUPPORTED, /* GetChatSettings */
361  NOTSUPPORTED, /* SetChatSettings */
362  NOTSUPPORTED, /* GetMMSSettings */
363  NOTSUPPORTED, /* SetMMSSettings */
364  NOTSUPPORTED, /* GetMMSFolders */
365  NOTSUPPORTED, /* GetNextMMSFileInfo */
366  N9210_GetBitmap,
367  N9210_SetBitmap,
368  NOTSUPPORTED, /* GetToDoStatus */
369  NOTSUPPORTED, /* GetToDo */
370  NOTSUPPORTED, /* GetNextToDo */
371  NOTSUPPORTED, /* SetToDo */
372  NOTSUPPORTED, /* AddToDo */
373  NOTSUPPORTED, /* DeleteToDo */
374  NOTSUPPORTED, /* DeleteAllToDo */
375  NOTSUPPORTED, /* GetCalendarStatus */
376  NOTSUPPORTED, /* GetCalendar */
377  NOTSUPPORTED, /* GetNextCalendar */
378  NOTSUPPORTED, /* SetCalendar */
379  NOTSUPPORTED, /* AddCalendar */
380  NOTSUPPORTED, /* DeleteCalendar */
381  NOTSUPPORTED, /* DeleteAllCalendar */
382  NOTSUPPORTED, /* GetCalendarSettings */
383  NOTSUPPORTED, /* SetCalendarSettings */
384  NOTSUPPORTED, /* GetNoteStatus */
385  NOTSUPPORTED, /* GetNote */
386  NOTSUPPORTED, /* GetNextNote */
387  NOTSUPPORTED, /* SetNote */
388  NOTSUPPORTED, /* AddNote */
389  NOTSUPPORTED, /* DeleteNote */
390  NOTSUPPORTED, /* DeleteAllNotes */
391  NOTIMPLEMENTED, /* GetProfile */
392  NOTSUPPORTED, /* SetProfile */
393  NOTSUPPORTED, /* GetFMStation */
394  NOTSUPPORTED, /* SetFMStation */
395  NOTSUPPORTED, /* ClearFMStations */
396  NOTSUPPORTED, /* GetNextFileFolder */
397  NOTSUPPORTED, /* GetFolderListing */
398  NOTSUPPORTED, /* GetNextRootFolder */
399  NOTSUPPORTED, /* SetFileAttributes */
400  NOTSUPPORTED, /* GetFilePart */
401  NOTSUPPORTED, /* AddFile */
402  NOTSUPPORTED, /* SendFilePart */
403  NOTSUPPORTED, /* GetFileSystemStatus */
404  NOTSUPPORTED, /* DeleteFile */
405  NOTSUPPORTED, /* AddFolder */
406  NOTSUPPORTED, /* DeleteFolder */
407  NOTSUPPORTED, /* GetGPRSAccessPoint */
408  NOTSUPPORTED, /* SetGPRSAccessPoint */
409  NOTSUPPORTED, /* GetScreenshot */
410  NOTSUPPORTED, /* SetPower */
411  NOTSUPPORTED, /* PostConnect */
412  NONEFUNCTION /* PreAPICall */
413 };
414 
415 #endif
416 
417 /* How should editor hadle tabs in this file? Add editor commands here.
418  * vim: noexpandtab sw=8 ts=8 sts=8:
419  */
size_t PHONE_GetBitmapSize(GSM_Phone_Bitmap_Types Type, size_t Width, size_t Height)
Definition: gsmlogo.c:44
GSM_Error DCT3DCT4_GetModel(GSM_StateMachine *s)
void CopyUnicodeString(unsigned char *Dest, const unsigned char *Source)
Definition: coding.c:1192
GSM_Error N71_92_ReplyGetBatteryCharge(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_CancelCall(GSM_StateMachine *s, int ID, gboolean all)
GSM_SMS_State State
GSM_Bitmap_Types Type
Definition: gammu-bitmap.h:107
#define NOTSUPPORTED
Definition: gsmcomon.h:14
GSM_Error DCT3_ReplyGetIMEI(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_ReplyGetDateTime(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_DialVoice(GSM_StateMachine *s, char *number, GSM_CallShowNumber ShowNumber)
GSM_Error DCT3_DecodeSMSFrame(GSM_StateMachine *s, GSM_SMSMessage *SMS, unsigned char *buffer)
#define N6110_FRAME_HEADER
Definition: ncommon.h:8
GSM_Error N71_92_SetDateTime(GSM_StateMachine *s, GSM_DateTime *date_time)
GSM_Error DCT3_GetPPM(GSM_StateMachine *s, char *value)
GSM_Error DCT3_ReplyDialCommand(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_ReplyEnableSecurity(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error GSM_DispatchMessage(GSM_StateMachine *s)
Definition: gsmstate.c:1131
#define NONEFUNCTION
Definition: gsmcomon.h:12
GSM_Error
Definition: gammu-error.h:23
void PHONE_EncodeBitmap(GSM_Phone_Bitmap_Types Type, char *buffer, GSM_Bitmap *Bitmap)
Definition: gsmlogo.c:197
size_t UnicodeLength(const unsigned char *str)
Definition: coding.c:186
GSM_Error PHONE_Terminate(GSM_StateMachine *s)
Definition: pfunc.c:79
GSM_Bitmap * Bitmap
Definition: gsmstate.h:573
unsigned char Location
Definition: gammu-bitmap.h:112
GSM_Phone_Bitmap_Types
Definition: gsmlogo.h:9
GSM_Error DCT3_AnswerAllCalls(GSM_StateMachine *s)
GSM_Error DCT3_ReplySetSMSC(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_ReplyGetSMSC(GSM_Protocol_Message *msg, GSM_StateMachine *s)
char NetworkCode[10]
Definition: gammu-bitmap.h:160
GSM_Error DCT3_SetSMSC(GSM_StateMachine *s, GSM_SMSC *smsc)
GSM_Error DCT3DCT4_GetFirmware(GSM_StateMachine *s)
GSM_Error N71_92_ReplyGetSignalQuality(GSM_Protocol_Message *msg, GSM_StateMachine *s)
int gboolean
Definition: gammu-types.h:23
GSM_Error DCT3_GetSMSC(GSM_StateMachine *s, GSM_SMSC *smsc)
GSM_Error N71_92_GetPhoneSetting(GSM_StateMachine *s, int Request, int Setting)
gboolean InboxFolder
GSM_Phone Phone
Definition: gsmstate.h:1431
#define FALSE
Definition: gammu-types.h:25
GSM_Error N71_92_GetBatteryCharge(GSM_StateMachine *s, GSM_BatteryCharge *bat)
GSM_Error GSM_WaitFor(GSM_StateMachine *s, unsigned const char *buffer, size_t length, int type, int timeout, GSM_Phone_RequestID request)
Definition: gsmstate.c:1029
GSM_Error N71_92_ReplyPhoneSetting(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_GetIMEI(GSM_StateMachine *s)
GSM_Error N61_91_ReplySetOpLogo(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_ReplySendSMSMessage(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3_SetIncomingCB(GSM_StateMachine *s, gboolean enable)
#define N7110_FRAME_HEADER
Definition: ncommon.h:9
GSM_Error DCT3_SendSMSMessage(GSM_StateMachine *s, GSM_SMSMessage *sms)
#define NOTIMPLEMENTED
Definition: gsmcomon.h:13
void NOKIA_EncodeNetworkCode(unsigned char *buffer, const char *input)
Definition: gsmnet.c:2467
GSM_Error DCT3_GetProductCode(GSM_StateMachine *s, char *value)
GSM_Phone_Data Data
Definition: gsmstate.h:1369
GSM_Error DCT3_ReplyNetmonitor(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error DCT3DCT4_ReplyGetModelFirmware(GSM_Protocol_Message *msg, GSM_StateMachine *s)
GSM_Error N71_92_GetSignalQuality(GSM_StateMachine *s, GSM_SignalQuality *sig)
GSM_Error NOKIA_ReplyGetPhoneString(GSM_Protocol_Message *msg, GSM_StateMachine *s)
void PHONE_GetBitmapWidthHeight(GSM_Phone_Bitmap_Types Type, size_t *width, size_t *height)
Definition: gsmlogo.c:23
GSM_Error DCT3_GetHardware(GSM_StateMachine *s, char *value)
void * IncomingSMSUserData
Definition: gsmstate.h:1387
GSM_Error N71_92_GetDateTime(GSM_StateMachine *s, GSM_DateTime *date_time)
unsigned char Text[2 *(GSM_BITMAP_TEXT_LENGTH+1)]
Definition: gammu-bitmap.h:118
GSM_Error NOKIA_GetManufacturer(GSM_StateMachine *s)
#define TRUE
Definition: gammu-types.h:28
GSM_Error DCT3_GetOriginalIMEI(GSM_StateMachine *s, char *value)
gboolean EnableIncomingSMS
Definition: gsmstate.h:663
unsigned char * Buffer
Definition: protocol.h:22
#define UNUSED
Definition: gammu-misc.h:105
GSM_Error DCT3_GetNetworkInfo(GSM_StateMachine *s, GSM_NetworkInfo *netinfo)
GSM_Error DCT3DCT4_AnswerCall(GSM_StateMachine *s, int ID)
GSM_Error DCT3_ReplySetDateTime(GSM_Protocol_Message *msg, GSM_StateMachine *s)
IncomingSMSCallback IncomingSMS
Definition: gsmstate.h:1382
GSM_Error DCT3_ReplyGetNetworkInfo(GSM_Protocol_Message *msg, GSM_StateMachine *s)
int smprintf(GSM_StateMachine *s, const char *format,...)
Definition: debug.c:261
GSM_Error DCT3_GetManufactureMonth(GSM_StateMachine *s, char *value)