http://marcin-wiacek.fkn.pl/english/zips/mygnokii.tar.gz
[gnokii.git] / common / newmodules / newat.c
index 392837e..985eb8c 100644 (file)
@@ -373,6 +373,12 @@ GSM_Error Nat_Initialise(char *port_device, char *initlength,
     return GE_NOTSUPPORTED;
   }
 
+
+  /* We try to escape AT+CMGS mode, at least Siemens M20 then needs to get some rest
+        */
+//  WRITEPHONE(PortFD,"\x1B\r",2);
+//  usleep(500000);
+
   usleep(100);
 
   if (Nat_SendManufacturerFrame()!=GE_NONE) return GE_TIMEOUT;
@@ -463,6 +469,7 @@ GSM_Error SetCharset()
   return error;
 }
 
+/* FIXME: M20 can have " inside name. We can't get endpos by finding first " */
 void Nat_ReplyGetMemoryLocation(u16 MessageLength, u8 *MessageBuffer, u8 MessageType) {
 
   char *pos, *endpos;
@@ -552,7 +559,7 @@ GSM_Error Nat_WritePhonebookLocation(GSM_PhonebookEntry * entry)
     case GMT_ME:
       /* FIXME: the 7110, 6210... supports long phonebookentries. in lack
          of documentation we only support SIM memory */
-      if(GetModelFeature (FN_PHONEBOOK)==F_PBK71) return GE_NOTIMPLEMENTED;
+      if(GetModelFeature (FN_PHONEBOOK)==F_PBK71INT) return GE_NOTIMPLEMENTED;
 
       break;
     default:
@@ -1659,6 +1666,16 @@ GSM_Error Nat_SendSaveSMSMessage(GSM_SMSMessage *message,bool savesms)
       break;
     case SMS_AT_TEXT:
 
+      if (ATMan!=AT_MAN_NOKIA) {
+        switch (CurrentSMSMessage->Coding) {
+          case GSM_Coding_Unicode:        
+          case GSM_Coding_8bit:
+            return GE_NOTSUPPORTED;
+          default:
+            break;
+        }
+      }
+
       GSM_EncodeETSISMS(message, &ETSISMS, PDU, &length);
 
       sprintf(req4, "AT+CSMP=%i,%i,%i,%i\r",