Emulating Carbon-copy of NDS-sniffed packets
[gnokii.git] / common / newmodules / n6110.c
index 88a9c7e..3fdd16a 100644 (file)
@@ -596,6 +596,14 @@ static GSM_Error N6110_Authentication()
   
   0x00, 0x00, 0x00, 0x00};
 
+  unsigned char req3_55[]  = { N6110_FRAME_HEADER, 0x42,0x05,0x01,
+                              0x07,0xa2,0x88,0x81,0x21,0x55,0x63,0xa8,0x00,0x00,
+                              0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80 };
+  unsigned char req3[]     = { N6110_FRAME_HEADER, 0x42,0x05,0x01,
+                              0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,
+                              0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80 };
+  unsigned char unknown_05[] = {N6110_FRAME_HEADER, 0x05};
+
 #ifdef DEBUG
   fprintf(stdout,_("Making authentication!\n"));
 #endif
@@ -604,15 +612,23 @@ static GSM_Error N6110_Authentication()
   usleep(100); Protocol->SendMessage(5, 0x02, connect2);
   usleep(100); Protocol->SendMessage(7, 0x02, connect3);
       
+  usleep(100); Protocol->SendMessage(sizeof(req3_55), 0x01, req3_55);  /* Lace */
+
   CurrentMagicError = GE_BUSY;
 
   usleep(100); Protocol->SendMessage(4, 0x64, connect4);
+
+  usleep(100); Protocol->SendMessage(sizeof(req3_55), 0x01, req3_55);  /* Lace */
+  usleep(100); Protocol->SendMessage(sizeof(req3), 0x01, req3);        /* Lace */
+
   if (NULL_WaitUntil(50,&CurrentMagicError)!=GE_NONE) return GE_TIMEOUT;
 
   N6110_GetNokiaAuth(Current_IMEI, MagicBytes, magic_connect+4);
 
   Protocol->SendMessage(45, 0x64, magic_connect);
 
+  usleep(100); Protocol->SendMessage(4, 0x04, unknown_05); /* Lace */
+
 #ifdef DEBUG
   fprintf(stdout,_("End of authentication!\n"));
 #endif
@@ -2582,6 +2598,8 @@ GSM_Error N6110_DialData(char *Number, char type, void (* callpassup)(char c))
 
        switch (type) {
        case 0:
+               usleep(100); Protocol->SendMessage(sizeof(req3), 0x01, req3);   /* Lace */
+               usleep(100);
                req_end = req_end0;
                size = sizeof(req_end0);
                break;
@@ -2610,8 +2628,9 @@ GSM_Error N6110_DialData(char *Number, char type, void (* callpassup)(char c))
        memcpy(req + 5 + strlen(Number), req_end, size);
 
        Protocol->SendMessage(5 + size + strlen(Number), 0x01, req);
-#if 0
        usleep(1000000);
+
+#if 0
        if (type != 1) Protocol->SendMessage(26, 0x01, req2);
 #endif