2 Last update 06.02.2002
\r
3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r
6 Balazs Nagy (js@lsc.hu)
\r
7 Harri Yli-Torkko (hyt@surfeu.fi)
\r
8 Alfred R. Nurnberger <arnu@flosys.com>
\r
9 Hugh Blemings <Hugh.Blemings@vsb.com.au>
\r
10 Mike Bradley <mike@trumpington.st>
\r
11 Odinokov Serge <serge@takas.lt>
\r
12 Pavel Janik <Pavel@Janik.cz>
\r
13 Pawel Kot <pkot@linuxnews.pl>
\r
14 Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)
\r
15 ... and other members of gnokii mailing list
\r
16 and authors of some WWW pages.
\r
18 The data provided is for information purposes only.
\r
19 Some of the frames might be hazardous to your phone. Be careful!!!
\r
20 We do not take any responsibility or liability for damages, etc.
\r
22 NOTE: this information isn't (and can't be) complete. If you know anything
\r
23 about features not listed here or you noticed a bug in this list, please
\r
24 notify us via e-mail. Thank you.
\r
26 Document describing frames used in
\r
27 GSM/PCN Nokia 6110 and derivatives (Nokia 6130, 6150, 6190, 5110, 5130, 5150,
\r
29 Correct format is FBUS version 2/Direct IRDA/MBUS version 2
\r
30 (see nokia.txt for protocol details):
\r
34 0x00: Monitoring values
\r
35 r monitoring value {+0x01, 0x01, block... }
\r
36 where block: 0x5e, 0x05, 0x7a(?), 0xd0(?), 0x85(?), 0x02, percentHI, percentLO
\r
37 Battery percent level
\r
38 0x5e, 0x0c, 0x52(?), 0x4b(?), 0x6f(?), 0x02, voltageHI, voltageLO
\r
39 Battery standby voltage
\r
41 0x01: Call Information
\r
42 s Make call { 0x0001, "number", type, block }
\r
47 data call (non digital lines):
\r
48 0x02,0x01,0x05,0x81,0x01,0x00,0x00,0x01,0x02,0x0a,
\r
49 0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00
\r
50 data call (digital lines):
\r
51 0x02,0x01,0x05,0x81,0x01,0x00,0x00,0x01,0x02,0x0a,
\r
52 0x07,0xa1,0x88,0x89,0x21,0x15,0x63,0xa0,0x00,0x06,
\r
53 0x88,0x90,0x21,0x48,0x40,0xbb
\r
55 0x01, 0x01, 0x05, 0x81/0x00, sendnum, 0x00, 0x00, 0x01
\r
57 sendnum (own number sending):
\r
58 0x01: preset (depends on network)
\r
61 r Call going msg { 0x0002 }
\r
62 r Call in progress { 0x0003, seqnr }
\r
63 r Remote end hang up { 0x0004, seqnr, ?, error (like in netmon in 39) }
\r
64 r incoming call alert { 0x0005, seqnr, numlen, "number", namelen, "name" }
\r
65 s Answer call part 2 { 0x0006, seqnr, 0x00 }
\r
66 r answered call { 0x0007, seqnr }
\r
67 s Hang up { 0x0008, seqnr, 0x85 }
\r
68 r terminated call { 0x0009, seqnr }
\r
69 r call msg { 0x000a, seqnr }
\r
70 r Send DTMF/voice call { 0x0040}
\r
71 s Answer call part 1 { 0x0042,0x05,0x01,0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,
\r
72 0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80 }
\r
73 s Sent after issuing { 0x0042,0x05,0x81,0x07,0xa1,0x88,0x89,0x21,0x15,0x63,0xa0,0x00,0x06,
\r
74 data call 0x88,0x90,0x21,0x48,0x40,0xbb,0x07,0xa3,
\r
75 (digital lines) 0xb8,0x81,0x20,0x15,0x63,0x80 }
\r
76 s Sent after issuing { 0x0042,0x05,0x01,0x07,0xa2,0xc8,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,
\r
77 data call 0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80,
\r
78 (non digital lines) 0x01,0x60 }
\r
79 s Send DTMF { 0x0050, length, {ascii codes for DTMF}, 0x01 }
\r
82 to make data call (non digital lines):
\r
83 1.send "Make call" for non digital lines
\r
84 2.send "Sent after issuing data call (non digital lines)"
\r
85 to make data call (digital lines):
\r
86 1.send "Answer call part 1"
\r
87 2.send "Sent after issuing data call (digital lines)"
\r
88 3.send "Make call" for digital lines
\r
90 1.send "Answer call part 1"
\r
91 2.send "Answer call part 2"
\r
94 s Send SMS message { 0x0001, 0x02, 0x00 (SEND REQUEST), ... }
\r
95 r Message sent { 0x0002 }
\r
96 r Send failed { 0x0003, ?, ?, error (like in netmon in 65)}
\r
97 s Get SMS message { 0x0007, 0x02, location, 0x01, 0x64 }
\r
98 s Initiate connection { 0x000d, 0x00, 0x00, 0x02 }
\r
99 r Initiate ACK { 0x000e, 0x01 }
\r
100 r SMS message received { 0x0010, ...... } (whole message)
\r
101 s Set CellBroadcast { 0x0020, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01 }
\r
102 for enable cell broadcast ?
\r
103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
\r
104 for disable cell broadcast ?
\r
105 r Set CellBroadcast OK { 0x0021, 0x01 }
\r
106 r Read CellBroadcast { 0x0023, ?, ?, ?, channel, ?, message... } ?
\r
107 s Set SMS center { 0x0030, 0x64, priority, checksum? ,0?, format,
\r
108 validity, {DefaultRecipient no.}[12],
\r
109 {SMScenter no.}[12], {SMSC name}, 0x00}
\r
110 where tel.no.[12]: {len, type, {number(BCD)}}
\r
112 0x91: + (international)
\r
121 validity: 0x0b: 1 hour
\r
127 r Set SMS center OK { 0x0031 }
\r
128 r Set SMS center error { 0x0032, reason }
\r
129 s Get SMS center { 0x0033, 0x64, priority }
\r
130 r SMS center received { 0x0034, priority, checksum?, format, 0x00?,
\r
131 validity, {DefaultRecipient no.}[12],
\r
132 {SMScenter no.}[12], {SMSC name}, 0x00}
\r
133 tel.no[12]: {len, type, {number(BCD)}}
\r
134 where priority, checksum, type, validity,
\r
135 tel.no.[12]: see 0x02/0x0030
\r
136 r SMS center error recv { 0x0035, reason }
\r
137 0x03: Phonebook functions
\r
138 s Get mem location { 0x0001, memtype, location, 0 }
\r
140 0x01: telephone and SIM phonebook (in one)
\r
141 0x02: telephone phonebook
\r
142 0x03: SIM phonebook
\r
143 0x04: SIM fixdialling-phonebook (?)
\r
145 0x07: Dialled numbers
\r
147 0x09: Received calls
\r
148 0x0b: voice mailbox (location not important)
\r
149 r mem location recvd { 0x0002, 0x00,namelen,"name",numlen,"number",groupID, 0x01?, yearLO, yearHI, month, day, hour, minute, sec. }
\r
150 Note: in 3310 all entries have null name ("feature" of bug ?)
\r
151 r mem loc error recvd { 0x0003, errtype }
\r
152 where errtype: 0x7d: invalid memory type
\r
153 s Set mem location { 0x0004, memtype,location,namelen,"Name",numlen,"number",groupID }
\r
154 r mem set OK { 0x0005 }
\r
155 r mem set error { 0x0006, errtype }
\r
156 where errtype: 0x7d: name is too long
\r
157 s Mem status request { 0x0007, memtype }
\r
158 r Mem status recvd { 0x0008, memtype, free, used }
\r
159 r Mem status error recv { 0x0009, errtype }
\r
160 where errtype: 0x6f: mem status error
\r
161 0x7d: invalid memory type
\r
162 0x8d: waiting for pin
\r
163 s Get caller group data { 0x0010, groupID }
\r
164 r Get caller group data { 0x0011, groupID, size, "Name", ringtoneID, graphic_on?1:0, lenHI, lenLO, OTABitmap (72x14 logo) }
\r
165 r Get call.group error { 0x0012, reason }
\r
166 where reason: 0x7d: invalid location
\r
167 s Set caller group data { 0x0013, groupID, size, "Name", ringtoneID, graphic_on?1:0, lenHI, lenLO, OTABitmap (72x14 logo) }
\r
168 r Set caller group OK { 0x0014 }
\r
169 r Set call.group error { 0x0015, reason }
\r
170 where reason: 0x7d: invalid location
\r
171 s Get speed dial { 0x0016, index(1-9) }
\r
172 r Get speed dial OK { 0x0017, mem.type, location }
\r
173 where mem.type: 0x02: ME (== 0 if not stored)
\r
175 location: memory location (== 0 if not stored)
\r
176 r Get speed dial error { 0x0018 }
\r
177 s Set speed dial { 0x0019, index(1-9), mem.type, location }
\r
178 r Set speed dial OK { 0x001a }
\r
179 r Set speed dial error { 0x001b }
\r
181 s Phone status { 0x0001 }
\r
182 r Phone status { 0x0002, mode, signal str, ???, pwr, batt.level }
\r
183 where mode: 1: registered within the network
\r
184 2: call in progress
\r
189 s Request Phone ID { 0x0003 }
\r
190 r RequestPhone ID { 0x0004, 0x01, "imei", 0, "model", 0, "prod.code", 0, "HW", 0, "firmware", 0x00, 0x01 }
\r
191 0x05: Profile settings
\r
192 s Set profile feature { 0x0010, 1, nr, feature, a, 1 }
\r
193 where nr: see 0x05/0x0013
\r
194 feature: see 0x05/0x0014
\r
196 r Set profile feat. OK { 0x0011, 1 }
\r
197 s Get profile feature { 0x0013, 1, nr, feature, 1 }
\r
198 where nr is profile number (general=0, silent, meeting, outdoor, pager, car, headset=6)
\r
199 feature: see 0x05/0x0014
\r
200 r Get profile feature { 0x0014, 1, nr, feature, 4, a, b, c, d, 1 }
\r
202 Note: For Nokia 3330 settings num 0x00 .. 0x09 can be assigned
\r
203 separately to each profile (0x00 .. 0x05), but rest are common
\r
206 Features and answers (in a, b, c, d form):
\r
207 0x00: keypad notes (in Nokia 33x0 feature 0x00)
\r
213 0x01: lights (? only in car profile) (what number in Nokia 3310 ?)
\r
216 0x??: on (maybe 0x01)
\r
217 0x02: incoming call alert (in Nokia 33x0 feature 0x01)
\r
225 7: caller groups (see feature #0x08)
\r
226 0x03: ringing tone (in Nokia 33x0 feature 0x02)
\r
228 xx: 0x12: ring ring
\r
231 0x04: ringing volume (in Nokia 33x0 feature 0x03)
\r
233 xx: level 1 (0x06) - level 5 (0x0a)
\r
234 0x05: message alert tone (in Nokia 33x0 feature 0x04)
\r
241 0x06: vibration (in Nokia 33x0 feature 0x05)
\r
245 0x07: warning and game tones (in Nokia 33x0 feature 0x06 called warning tones)
\r
249 0x07: screen saver - Nokia 33x0
\r
252 0x08: incoming caller groups (what number in Nokia 3310 ?)
\r
259 0x08: Screen saver -> Timeout (Nokia 33xx):
\r
264 0x09: automatic answer (what number in Nokia 3310 ?)
\r
269 0x09: Screen saver -> Screen saver (Nokia 33xx):
\r
270 0x00 ... 0x0d = Number of picture image
\r
274 0x15: ???: Read only?
\r
280 0x17: Phone book -> Options -> Memory in use (Nokia 3330):
\r
284 0x18: Settings -> Phone settings -> Network selection (Nokia 3330):
\r
288 0x19 Settings -> Call settings -> Automatic redial(Nokia 3330):
\r
292 0x1a: Settings -> Call settings -> Speed dialling (Nokia 3330):
\r
296 0x1b: Settings -> Call settings -> Own number sending (Nokia 3330):
\r
297 0x00 = Set by network
\r
301 0x1c: Settings -> Phone settings -> Cell info display (Nokia 3330):
\r
304 0x1d: Phone book -> Options -> Type of view (Nokia 3330):
\r
306 0x01 = Name, number
\r
309 0x1e: Settings -> Phone settings -> Language (Nokia 3330):
\r
318 0x32 = Reboots ME (3330)
\r
320 0x1f: ???: Read only? (3330)
\r
322 0x20: Messages -> Message settings -> Common -> Reply via same centre (N3330):
\r
326 0x21: Messages -> Message settings -> Common -> Delivery reports (3330):
\r
330 0x22: Clock -> Clock settings -> Show/Hide clock (3330):
\r
334 0x23: Clock -> Clock settings -> Time format (N3330):
\r
338 0x24: Select profile (N3330):
\r
340 0x01 ... 0x05 = rest of them
\r
342 0x25: ???: Read only? (N3330)
\r
344 0x26: Settings -> Phone settings -> Confirm SIM service actions (N3330):
\r
348 0x27: Messages -> Write messages -> Options -> Dictionary (N3330):
\r
353 0x28: Messages -> Message settings -> Common -> Character support (N3330):
\r
355 0x01 = GSM alphabet
\r
358 0x29: Startup logo settings (N33x0):
\r
359 0x00 = Your own uploaded logo
\r
361 0x02 = Draft HUMAN technology(tm)
\r
364 0x2a:???: 0x00 = ??? 0x01 = ??? (N3330)
\r
366 0x2b: ???: 0x00 = ??? 0x01 = ??? (N3330)
\r
368 0x2c: ???: Read only? (N3330)
\r
370 0x2d: Clock -> Auto update of date and time (N3330):
\r
372 0x01 = Confirm first
\r
375 s Get welcome message { 0x0016 }
\r
376 r Get welcome message { 0x0017, no.of blocks, { block } * }
\r
377 where block: { id, {blockspecific} }
\r
378 id: 1: startup logo { y, x, picture (coding?) }
\r
379 2: welcome note { len, "message" }
\r
380 3: operator msg { len, "message" }
\r
381 s Set welcome message { 0x0018, no.of blocks, { block } * }
\r
382 where block: see 0x05/0x0017
\r
383 r Set welcome OK { 0x0019, 0x01 }
\r
384 s Get profile name { 0x001a, nr }
\r
385 where nr: see 0x05/0x0013
\r
386 r Profile name { 0x001b, 1, 1, 3, flen, nr, len, {text} }
\r
387 where nr: see 0x05/0x0013
\r
389 flen len + len(nr, len) = len + 2
\r
390 Note: in Nokia 3310 name is in Unicode
\r
392 r ??? { 0x001d, 0x93 }
\r
393 s Set oplogo { 0x0030, location, MCC1, MCC2, MNC, lenhi=0x00, lenlo=0x82, OTABitmap }
\r
394 r Set oplogo OK { 0x0031 }
\r
395 r Set oplogo error { 0x0032, reason }
\r
396 where reason: 0x7d invalid location
\r
397 s Get oplogo { 0x0033, location }
\r
398 where location: 1 (doesn't seem to matter)
\r
399 r Get oplogo { 0x0034, location, MCC1, MCC2, MNC, lenhi=0x00, lenlo=0x82, OTABitmap }
\r
400 r Get oplogo error { 0x0035, reason }
\r
401 where reason: 0x7d invalid location
\r
402 s Set ringtone { 0x0036, location,0x00,0x78, ringtone packed according to SM2.0}
\r
403 r Set ringtone OK { 0x0037 }
\r
404 r Set ringtone error { 0x0038, reason }
\r
405 where reason=0x7d, when not supported location
\r
406 s Get services settings { 0x0080, setting (2 bytes) }
\r
407 where: setting: 0x02,0x00=Nokia access number 1
\r
408 0x02,0x01=Operator access number 1
\r
409 0x01,0x00=Personal bookmark 1 settings (name only ?)
\r
412 r Get services sett.OK { 0x0081, .... }
\r
413 r Get services sett.err { 0x0082, 0x7b }
\r
414 0x06: Calling line restriction/Call forwarding etc
\r
415 r Get call divert { 0x0001, 0x02, x, 0x00, divtype, 0x02, calltype, y, z, 0x0b, number, 0x00...0x00, timeout (byte 45) }
416 s Set call divert { 0x0001, 0x03, 0x00, divtype, calltype, 0x01, number(packed like in SMS), 0x00 ... 0x00,
417 length of number (byte 29), 0x00 ... 0x00, timeout (byte 52), 0x00, 0x00, 0x00}
428 0x02: all diverts for all call types ?
\r
429 Found only, when deactivate all diverts for all call types (with call type 0x00)
\r
432 0x3d: when not answered
\r
433 0x3e: if not reached
\r
435 0x00: all calls (data, voice, fax)
\r
439 s Deactivate calldiverts{ 0x0001, 0x04, 0x00, divtype, calltype, 0x00 }
\r
440 where divtype, calltype: see above
\r
441 s Get call diverts { 0x0001, 0x05, 0x00, divtype, calltype, 0x00 }
\r
442 where divtype, calltype: see above
\r
443 r Get prepaid(?) info { 0x0005, ?,?,?,length,message(packed like in 7bit SMS)}
\r
445 s ??? { 0x0022, ? (1&2 sounds OK) }
\r
446 r ??? OK { 0x0023, ?,?,? }
\r
447 r ??? error { 0x0024, reason }
\r
448 s ??? { 0x0025, ??? }
\r
449 r ??? OK { 0x0026, ??? }
\r
450 r ??? error { 0x0027, reason }
\r
451 0x08: Security codes
\r
452 s Change code { 0x0004, code, "current", 0x00, "new", 0x00 }
\r
453 where code: 1: security code (5 chars)
\r
458 s Status request { 0x0007, 0x01 }
\r
459 r pin recvd { 0x0008, accepted }
\r
460 where accepted: 0x0c (or 0x06): OK
\r
461 code: waiting for (0x08/0x0004) code
\r
462 s entering code { 0x000a, code, "code", 0x00 }
\r
463 where code: see 0x08/0x0004
\r
466 r logout { 0x0081 }
\r
467 0x0a: Network status
\r
468 s Key duplication on/off{ 0x0044, on? 0x01: 0x02 }
\r
469 s get used network { 0x0070 }
\r
470 r network registration { 0x0071, ?,?,?,length,netstatus,netsel,cellIDH,cellIDL,lacH,lacL,netcode,netcode,netcode }
\r
472 s Get key assignments { 0x0040, 0x01 }
\r
473 r Get key assignments { 0x0041, {key '1'}, 0x00, {key '2'} ... {key '0'}, 0,0,0, {symbols}, 0 }
\r
474 where {key '0'} => ' ', '0'
\r
475 s Press key { 0x0042, press: 0x01; release: 0x02, button, 0x01 }
\r
476 where button: 0x01 - 0x09: 1-9
\r
481 0x0e: Pick up phone
\r
489 0x1B onwards: don't know but they do produce
\r
490 a beep and light up the keypad as if
\r
491 a key had been pressed.
\r
492 r Press key ack { 0x0043, press/release/error(0x05) }
\r
494 r ??? ack { 0x0045, 0x01 }
\r
496 r Display { 0x0050, 0x01, y, x, len, "string"(unicode) }
\r
497 s Status request { 0x0051 }
\r
498 r Status { 0x0052, no. of byte pairs, {byte pair} }
\r
499 where {byte pair}: {cmd, 1:off 2:on}
\r
500 cmd: 1: call in progress
\r
503 4: voice call active
\r
505 6: data call active
\r
507 8: is SMS storage full
\r
508 s Display status { 0x0053, 1:on 2:off }
\r
509 (will send displayed messages with x,y coordinates)
\r
510 r Display status ack { 0x0054, 1 }
\r
511 0x11: Phone clock & alarm
\r
512 s set date and time { 0x0060, 1,1,7,yearh,yearl,month,mday,hour,min,0x00 }
\r
513 r date and time set { 0x0061 }
\r
514 s get date and time { 0x0062 }
\r
515 r date and time recvd { 0x0063,date_set?,time_set?,?,?,yearh,yearl,month,mday,hour,min,second }
\r
516 where: date_set & time_set==0x01 - set
\r
517 0x00 - not set, ?,?,yearh,yearl,month,mday,hour,min,second
\r
518 not available in frame
\r
519 s set alarm { 0x006b, 1,32,3,0x02(on-off),hour,min,0x00 }
\r
520 r alarm set { 0x006c }
\r
521 s get alarm { 0x006d }
\r
522 r alarm received { 0x006e,?,?,?,?,alrm(==2:on),hour,min }
\r
523 0x12: Connect to NBS port (61xx only ?)
\r
524 s Send {+0x0c, 0x01, UDH header, data}
\r
525 (without 0,1 header -- for oplogo, cli, ringtone etc upload)
\r
526 where: UDH header = 0x06, 0x05, 0x04,destporth,destportl,srcporth,srcportl
\r
527 0x13: Calendar notes
\r
528 s Write calendar note { 0x0064, 0x01, 0x10, length, type, yearH, yearL, month, day, hour, timezone,
\r
529 alarm?(alarm yearH, yearL, month, day, hour, timezone): (0,0,0,0,0,0),
\r
531 r Write cal.note report { 0x0065, return }
\r
532 where return: 0x01: ok
\r
534 0x81: calendar functions busy. Exit Calendar menu and try again
\r
535 s Calendar notes set { 0x0066... }
\r
536 r Calendar note recvd { 0x0067, 0x01, ?, length, type, yrH,yrL,mon,day,hr,tz,alrm yrH,yrL,mon,day,hr,tz,textlen, "text" }
\r
537 r Cal.note recvd error { 0x0067, err }
\r
538 where err: 0x93: not available
\r
541 s Delete cal.note { 0x0068, location }
\r
542 r Del. cal.note report { 0x0069, err }
\r
543 where err: 0x01: OK
\r
544 0x93: cannot delete
\r
546 s Write SMS to SIM { 0x0004, .... }
\r
547 s Mark SMS as read { 0x0007, 0x02, location, 0x00, 0x64 }
\r
548 r SMS message frame rcv { 0x0008,subtype,?,num,?,BCD(smscenter)...} 20->type, 22->status
\r
549 where type: 0x06: delivery report
\r
550 status: 0x00: delivered
\r
553 0x09: reading failed
\r
554 subtype: 0x02: invalid mem type
\r
555 0x07: empty SMS location
\r
556 0x0c: no access to memory (no PIN in card, etc.)
\r
557 s Delete SMS message { 0x000a, 0x02, location }
\r
558 r Delete OK { 0x000b }
\r
559 s SMS status request { 0x0036, 0x64 }
\r
560 r SMS status { 0x0037,?,?,?,?,?,?,msgnumber,unread }
\r
561 r SMS status error { 0x0038 }
\r
563 s Enable WAP frames { 0x0000}
\r
564 r Enable WAP frames { 0x0002, 0x01}
\r
569 s Get WAP bookmark { 0x0006, 0x00, location}
\r
570 where location: 0 - 14
\r
571 r Get WAP bookmark { 0x0007, 0x00, name_len, name(unicode),
\r
572 url_len, url(unicode), 0x01,0x80,0x00[7]}
\r
573 r Get WAP bookmark err { 0x0008, error }
\r
575 0x00(?)invalid position
\r
576 0x01 user inside "Bookmarks" menu. Must leave it
\r
577 0x02 invalid/too high/empty location
\r
579 s Set WAP bookmark { 0x0009, 0xff, 0xff, name_len, name(unicode),
\r
580 url_len, url(unicode), 0x01,0x80,0x00[7] }
\r
581 Note: bookmark is added to the first free location.
\r
582 r Set WAP bookmark OK {+0x01, 0x36, 0x0a, block }
\r
584 0x0a, location_of_just_written_bookmark(?),
\r
585 0x00, next_free_location(?)
\r
586 r Set WAP bookmark err {+0x01, 0x36, 0x0b, error }
\r
588 0x04 - memory is full
\r
589 0x01 - we are in the bookmark menu
\r
590 0x00 - unknown reason for now ;(
\r
592 ? s Delete WAP bookmark { 0x000c, 0x00, location }
\r
593 where: location = 0-14
\r
594 ? r Delete WAR bookmark OK{ 0x000d }
\r
595 ? r Delete WAPbookmark err{ 0x000e, 0x02 }
\r
598 r ?? { 0x0010, 0x00}
\r
600 s Get WAP settings 1 { 0x0015, location}
\r
601 where location: 0x00 - 0x05
\r
602 r Get WAP settings 1 OK { 0x0016, title length, title (Unicode), URL length, URL(Unicode),con_type, ???[6 bytes],location, ???[5 bytes],security,...}
\r
604 con_type: 0x00 - temporary
\r
606 location: when use "Get WAP settings 2 frame", must give it
\r
607 security: 0x00 = no, 0x01 = yes
\r
608 r Get WAP settings 1 err{ 0x0017, error }
\r
610 0x01 user inside "Settings" menu. Must leave it
\r
611 0x02 invalid/too high/empty location
\r
613 s Get WAP settings 2 { 0x001b, location}
\r
614 where location: 0x00 - 0x1d (you get it in "Get WAP settings 1" frame)
\r
615 r Get WAP settings 2 OK { 0x001c, 0x01, type, frame...}
\r
616 where type : 0x00 - SMS bearer
\r
618 service_num_len, service_num (Unicode), server_num_len, server_num(Unicode)
\r
621 auth, call_type, call_speed, ?, IP len, IP (Unicode), dialup len, dialup (Unicode),
\r
622 user len, user (Unicode), password len, password (Unicode)
\r
623 where auth: 0x00 - normal, 0x01 - secure
\r
624 call_type: 0x00 - analogue, 0x01 - ISDN
\r
625 call_speed: 0x00 - 9600, 0x01 - 14400
\r
627 frame: type, service number len/IP len,service num (Unicode)/IP (Unicode),service code len,
\r
628 service code (Unicode)
\r
629 where type: 0x01 - service number, 0x00 - IP
\r
630 r Get WAP settings 2 err{ 0x001d,error}
\r
632 0x40: Security commands
\r
633 s ??? {+0x00, 0x00, 0x07, 0x11, 0x00, 0x10, 0x00, 0x00}
\r
634 This frame hangs phone (N3310 4.02). Meaning unknown !
\r
635 s Open simlock 1 { 0x02, 0x03, 0x1f, 0x11, 0x01, 0x01, 0x10, 0x00}
636 r Open simlock 1 { 0x02 }
637 s ???(N6150) { 0x08, 0x00 }
\r
638 r ???(N6150) { 0x08 }
\r
639 s Enable extended cmds { 0x64, cmd }
\r
640 where cmd: 0x00: off
\r
642 0x02: enter service mode ?
643 0x03: reset (doesn't ask for PIN again)
\r
644 0x04: reset (PIN is requested)
\r
645 In 5110 makes reset without PIN
\r
646 0x06: CONTACT SERVICE!!! Don't try it!
\r
647 s Reset phone settings { 0x65, value, 0x00 }
648 where value: 0x08 - reset UI (User Interface) settings
649 0x38 - reset UI, SCM and call counters
650 r Reset phone settings { 0x65, 0x00 }
651 s Get IMEI { 0x66 }
\r
652 r Get IMEI { 0x66, 0x01, IMEI, 0x00}
\r
653 s (ACD Readings)?(N6150 { 0x68 }
\r
654 r (ACD Readings)?(N6150 { 0x68, ... }
\r
655 s Get Product Profile
\r
657 r Get Product Profile
\r
658 Settings { 0x6a, 4bytes with Product Profile Settings }
\r
659 s Set Product Profile
\r
660 Settings { 0x6b, 4bytes with Product Profile Settings }
\r
661 r Set Product Profile
\r
662 Settings OK ? { 0x6b }
\r
663 s Get code { 0x6e, code }
\r
664 where code: see 0x08/0x0004 (only sec.code is allowed)
\r
665 r Get code { 0x6e, code, allowed, allowed? (sec code (text)) }
\r
666 where code: see 0x08/0x0004
\r
669 s Set code { 0x6f, code, sec code(text), 0x00 }
670 where code: see 0x08/0x0004
\r
671 s Start monitoring { 0x70, block }
\r
672 where block(N6150):
\r
673 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
\r
674 0xff,0xff,0xff,0xff,0xff,0xf9,0x76,0x65,0x20,0x00,
\r
675 0x00,0x00,0x00,0x00,0x18,0x26,0x15,0x7d,0x0a,0x00,
\r
676 0xf5,0x82,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
\r
677 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x77,0x80,
\r
678 0x77,0x80,0xf2,0x82,0x20,0x20,0x20,0x20,0x20,0x20,
\r
679 0x20,0x20,0x20,0x20
\r
680 This block enables probably all possible monitorred parameters.
\r
681 After it phone sends 0x00 message type values
\r
682 s Break monitoring { 0x71 }
\r
683 r Break monitoring { 0x71 }
\r
685 Counters (nm->test36) { 0x74, 0x01, 0x01, 0x0e }
\r
687 Counters (nm->test36) { 0x74 }
\r
688 s Call commands { 0x7c, block }
\r
689 where where: command, (values)
\r
691 values: number(ASCII), 0x00 - makes voice call
\r
692 command: 0x02 - answer call
\r
693 command: 0x03 - release call
\r
694 r Call commands { 0x7c, command }
\r
695 s Netmonitor { 0x7e, field }
\r
696 where: field: 00: next
\r
699 F2: field test menus
\r
700 F3: developer menus
\r
701 s Open simlock 2 { 0x81, 0x01, locknumber, 0x10, 0x10, 0x10, 0x10, 0x10 }
702 Note: sets simlock type to factory?
703 where locknumber: 1,2,4,8
704 s Open simlock 2 { 0x81, 0x01, locknumber }
705 where locknumber: 1,2,4,8
706 s Close simlock { 0x82, 0x01, locknumber, 0x00, 0x00, locksinfo(lock1,4,2,3), 0x00 }
707 where locknumber: 1,2,4,8
708 r Close simlock { 0x82, the rest like in 0x40/0x8a }
709 s Get simlock info { 0x8a, 0x00}
\r
710 r Get simlock info { 0x8a, 0x00, 0x01, lockstype, locksclosed, 0x00, 0x00, locksinfo(lock1,4,2,3), counter1,counter2,counter4,counter4,0x00 }
\r
711 where: lockstype: bit1,bit2,bit3,bit4 - if set, selected lock is user lock
\r
712 locksclosed: bit1,bit2,bit3,bit4 - if set, selected lock is closed
\r
713 counter1 - counter4: counters for locks
\r
714 s Set downloaded OpName { 0x8b, 0x00, MCC1, MCC2, MNC, Name, 0x00 }
\r
715 r SetdownloadedOpNameOK?{ 0x8b, 0x00, 0x01 }
\r
716 s Get downloaded OpName { 0x8c, 0x00 }
\r
717 r Get downloaded OpName { 0x8c, 0x00, 0x01, MCC1, MCC2, MNC, Name, 0x00,...}
\r
718 s Buzzer pitch { 0x8f, volume, hzLO, hzHI }
\r
719 if volume and hz is 0, it's off
\r
720 r Buzzer pitch { 0x8f}
\r
721 s ACD Readings ? { 0x91, parameter?(0x02,0x03,0x04,0x05,0x07) }
\r
722 r ACD Readings ? { 0x91, parameter?, value? }
\r
723 s Sleep mode test { 0x92, 0x00, 0x00, howlong(2 bytes), enable }
724 where: enable == 0x01 - enable after test
725 0x00 - don't enable after test
726 howlong (ms) = 0x07, 0xd0 = 2000
727 s ???(N6150) { 0x98, 0x00 }
\r
728 r ???(N6150) { 0x98, 0x00, 0x04 }
\r
729 s Get bin ringtone { 0x9e, location }
\r
730 where: location=0,1,etc.
\r
731 r Get bin ringtone { 0x9e, location, error, contents... }
\r
732 where location=0,1,etc.
\r
733 error=0x0a, ringtone NOT available
\r
735 s Set bin ringtone { 0xa0, location, 0x00, contenst... }
\r
736 where: location=0,1,etc.
\r
737 r Set bin ringtone { 0xa0, location, error }
\r
738 where location=0,1,etc.
\r
739 error=0x0a, ringtone NOT set
\r
740 0x00, ringtone set OK
\r
741 r Get MSid { 0xb5, 0x01, 0x2f, msid, 0x25 }
\r
742 s Get info about phone { 0xc8, 0x01 }
\r
743 r Get info about phone { 0xc8, 0x01, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
\r
744 s Get MCU SW Checksum { 0xc8, 0x02 }
\r
745 r Get MCU SW Checksum { 0xc8, 0x02, 0x00, checksum (4 bytes),0x00 }
\r
746 s DPS External SW { 0xc7, 0x03 }
\r
747 r DSP External SW { 0xc7, 0x03, 0x00, string,0x00 }
\r
748 s Get HW { 0xc8, 0x05 }
\r
749 r Get HW { 0xc8, 0x05, 0x00, HW version (4 bytes), 0x00 }
\r
750 s Get "Made" Date { 0xc8, 0x05 }
\r
751 r Get "Made" Date { 0xc8, 0x05, 0x00, date(4 bytes), 0x00 }
\r
752 s Get DSP Internal SW { 0xc8, 0x09 }
\r
753 r Get DSP Internal SW { 0xc8, 0x09, 0x00, version (1 bytes), 0x00 }
\r
754 s Get PCI version { 0xc8, 0x0b }
\r
755 r Get PCI version { 0xc8, 0x0b, 0x00, version, 0x00 }
\r
756 s Get system ASIC { 0xc8, 0x0c }
\r
757 r Get system ASIC { 0xc8, 0x0c, 0x00, string, 0x00 }
\r
758 s Get COBBA { 0xc8, 0x0d }
\r
759 r Get COBBA { 0xc8, 0x0d, 0x00, string, 0x00 }
\r
760 s Get PLUSSA { 0xc8, 0x0e }
\r
761 r Get PLUSSA { 0xc8, 0x0e, available, 0x00 }
\r
762 where available: 0x01: not available
\r
763 s Get CCONT { 0xc8, 0x0f }
\r
764 r Get CCONT { 0xc8, 0x0f, available, 0x00 }
\r
765 where available: 0x01: not available
\r
766 s Get PPM version { 0xc8, 0x10 }
\r
767 r Get PPM version { 0xc8, 0x10, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
\r
768 s Get PPM info { 0xc8, 0x12 }
\r
769 r Get PPM info { 0xc8, 0x12, 0x00, PPM version ("B", "C", etc.), 0x00 }
\r
770 s Set HW version { 0xc9, 0x05, version, 0x00 }
\r
771 s Get Product Code { 0xca, 0x01 }
\r
772 r Get Product Code { 0xca, 0x01, 0x00, number, 0x00 }
\r
773 s Get Order Number { 0xca, 0x02 }
\r
774 r Get Order Number { 0xca, 0x02, 0x00, string, 0x00 }
\r
775 s Get Prod.Ser.Number { 0xca, 0x03 }
\r
776 r Get Prod.Ser.Number { 0xca, 0x03, 0x00, number, 0x00 }
\r
777 s Get Basic Prod.Code { 0xca, 0x04 }
\r
778 r Get Basic Prod.Code { 0xca, 0x04, 0x00, number, 0x00 }
\r
779 s Set Product Code { 0xcb, 0x01, product code, 0x00 }
\r
780 s Set Order Number { 0xcb, 0x02, number, 0x00 }
\r
781 s Set Prod.Ser.Number { 0xcb, 0x03, number, 0x00 }
\r
782 s Get (original ?)IMEI { 0xcc, 0x01 }
\r
783 r Get (original ?)IMEI { 0xcc, 0x01, IMEI, 0x00 }
\r
784 s Get Manufacture Month { 0xcc, 0x02 }
\r
785 r Get Manufacture Month { 0xcc, 0x02, 0x00, string, 0x00 }
\r
786 s Get Purchare date { 0xcc, 0x04 }
\r
787 r Get Purchare date { 0xcc, 0x04, 0x00, string, 0x00 }
\r
788 s Set "Made" date { 0xcd, 0x02, string, 0x00 }
\r
789 s Make "all" phone tests{ 0xce,0x1d,0xfe,0x23,0x00,0x00}
\r
790 s Make one phone test { 0xce,0x1d,num1,num2,num3,num4}
\r
791 Where num1-num4: 0x02,0x00,0x00,0x00;
\r
792 0x04,0x00,0x00,0x00;
\r
793 0x08,0x00,0x00,0x00;
\r
794 0x10,0x00,0x00,0x00;
\r
795 0x20,0x00,0x00,0x00;
\r
796 0x40,0x00,0x00,0x00;
\r
797 0x80,0x00,0x00,0x00;
\r
798 0x00,0x01,0x00,0x00;
\r
799 0x00,0x02,0x00,0x00;
\r
800 0x00,0x04,0x00,0x00; - "Power off"
\r
801 No test for "Security data"
\r
802 0x00,0x10,0x00,0x00;
\r
803 0x00,0x20,0x00,0x00;
\r
804 0x00,0x40,0x00,0x00;
\r
805 0x00,0x80,0x00,0x00;
\r
806 0x00,0x00,0x01,0x00;
\r
808 0x00,0x00,0x10,0x00;
\r
809 s Result of phone tests { 0xcf }
\r
810 r Result of phone tests { 0xcf, number of tests, results of next tests }
\r
812 r ???(N5110) { 0xd1, 0x00, 0x1d, 0x00, 0x01, 0x08, 0x00 }
\r
813 s LCD Test { 0xd3, value }
\r
814 where value: 0x03, 0x02 - 1'st test
\r
815 0x03, 0x01 - 2'nd test
\r
816 0x02, 0x03 - clears screen
\r
817 s ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01}
\r
818 r ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01, ?}
\r
819 s Get EEPROM { 0xd4, 0x02, 0x00, 0xa0, locationLo, locationHi, numofbytes }
820 where: numofbytes - how many bytes to read
821 Note: Works ONLY in MBUS
822 r Get EEPROM { 0xd4, 0x02, 0x00, 0xa0, locationLo, locationHi, numofbytes, contest... }
823 where numofbytes - how many bytes available
824 contest - bytes with contests (if numofbytes != 0)
827 s Get Picture Image { 0x0001, location }
\r
828 r Get Picture Image when contains sender number
\r
829 { 0x0002, location, number(like in SMS), 0x00, len, text, 0x00, width, height, 0x01, bitmap }
\r
831 Supports only 0x81 and 0x91 coding (NOT alphanumeric numbers!)
\r
832 in sender without sender number
\r
833 { 0x0002, location, 0x00, 0x00, 0x00, len, text, 0x00, width, height, 0x01, bitmap }
\r
834 s Set Picture Image { 0x0003, frame...}
\r
835 where frame: see 0x47/0x0002
\r
836 r Get/Set PictureImageOK{ 0x0004 }
\r
837 r Set Picture Image err { 0x0005, error? }
\r
838 where error=0x74 - wrong location ?
\r
840 s Phone ID request { 0x0010 }
\r
841 r Phone ID recvd { 0x0011, "NOKIA", "imei", 0, "model", 0, "prod.code", 0, "HW", 0, "firmware", magic bytes x 4 ... }
\r
842 s Accessory connection { 0x0012, 16x0x00, 'NOKIA&NOKIA accessory', 3x0x00 } (45 bytes)
\r
843 0x7f: Acknowledge(FBUS/IRDA){+type, seq }
\r
844 Acknowledge(MBUS)...
\r
846 s Power on message seq1 {+04 }
\r
847 r Power on message seq1 {+05 }
\r
849 s Get HW&SW version { 0x0003, 0x00 }
\r
851 r Get HW&SW version { 0x0003 "V " "firmware\n" "firmware date\n"
\r
852 "model\n" "(c) NMP." }
\r
853 0xda: ? (during playing 2 player snake)
\r
855 s Send RLP frame {+0x00, 0xd9, ... }
\r
856 0xf4: Power on message seq 2
\r