3 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r
6 Balazs Nagy (js@lsc.hu)
\r
7 Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)
\r
8 Jens Bennfors <jens.bennfors@ing.hj.se>
\r
9 Michael Hund <michael@drhund.de>
\r
10 Jay Bertrand <jay.bertrand@libertysurf.fr>
\r
11 Gabriele Zappi <gzappi@inwind.it>
\r
12 Markus Plail <plail@web.de>
13 Ralf Thelen <ralf@mythelen.de>
14 ... and other members of gnokii mailing list
\r
15 and authors of some WWW pages.
\r
17 The data provided is for information purposes only.
\r
18 Some of the frames might be hazardous to your phone. Be careful!!!
\r
19 We do not take any responsibility or liability for damages, etc.
\r
21 NOTE: this information isn't (and can't be) complete. If you know anything
\r
22 about features not listed here or you noticed a bug in this list, please
\r
23 notify us via e-mail. Thank you.
\r
25 Document describing frames used in
\r
26 GSM Nokia 6210 and derivatives (7110)
\r
27 Correct format is FBUS version 2/Infrared/MBUS version 2
\r
28 (see nokia.txt for protocol details):
\r
32 0x00: Connect to NBS port ?
\r
33 r Set ringtone {+0x7c,0x01,0x00,0x0d,0x06[6],0x78,ringtone packed according to SM2.0}
\r
34 Seems not to work in MBUS!
\r
35 0x01: Communication Status
\r
36 ? r Call msg { 0x0002 }
\r
37 ? r Call in progress { 0x0003, seqnr }
\r
38 ? r Remote end hang up { 0x0004, seqnr, ?, error (like in netmon in 39) }
\r
39 ? r incoming call alert { 0x0005, seqnr, numlen, "number", namelen, "name" }
\r
40 ? r answered call { 0x0007, seqnr }
\r
41 ? r terminated call { 0x0009, seqnr }
\r
42 ? r call msg { 0x000a, seqnr }
\r
43 Note: in 6210 4.27 all msg from 0x01 seems to be unavailable
\r
45 s Send SMS message { 0x0001, 0x02, 0x00 (SEND REQUEST), ... }
\r
46 r Message sent { 0x0002 }
\r
47 r Send failed { 0x0003, ?, ?, error (like in netmon in 65)}
\r
48 s Incoming SMS info on { 0x000d, 0x00, 0x00, 0x02}
\r
49 note: no info about Delivery Reports
\r
50 r Incoming SMS info onOK{ 0x000e }
\r
51 note: no info about Delivery Reports
\r
52 r Incoming SMS infoonerr{ 0x000f, error }
\r
53 where error: 0x0c - no PIN
\r
54 r SMS message received { 0x0011, ...... } (whole message)
\r
55 s Set CellBroadcast { 0x0020, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01 }
\r
56 for enable cell broadcast ?
\r
57 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
\r
58 for disable cell broadcast ?
\r
59 r Set CellBroadcast OK { 0x0021, 0x01 }
\r
60 r Read CellBroadcast { 0x0023, ?, ?, ?, channel, ?, message... } ?
\r
61 s Set SMS center { 0x0030, 0x64, priority, checksum?, format,
\r
62 validity[2], {DefaultRecipient no.}[12],
\r
63 {SMScenter no.}[12], {SMSC name}, 0x00}
\r
64 where tel.no.[12]: {len, type, {number(BCD)}}
\r
66 0x91: + (international)
\r
75 validity: 0x000b: 1 hour
\r
81 r Set SMS center OK { 0x0031 }
\r
82 r Set SMS center error { 0x0032, reason }
\r
83 s Get SMS center { 0x0033, 0x64, priority }
\r
84 r SMS center received { 0x0034, priority, checksum?, type,
\r
85 validity[2], {DefaultRecipient no.}[12],
\r
86 {SMScenter no.}[12], {SMSC name}, 0x00 }
\r
87 where priority, checksum, type, validity,
\r
88 tel.no.[12]: see 0x02/0x0030
\r
89 r SMS center error recv { 0x0035, reason }
\r
91 r?? { 0x0075, 0xFF, 0x11, 0x98}
\r
94 0x03: Phonebook functions
\r
95 s Get memory status { 0x0103, 0x02, memory type }
\r
96 where: memory type - see 0x03/0x0107
\r
97 r Get memory status { 0x0104, 0x00, xL, 0x00[2], y1H, y1L, 0x10,
\r
98 0x00[2], z?, ymaxH, ymaxL, y2H, y2L,
\r
99 0x0d?, xH?, 0x00[2]? }
\r
100 where y1: location (lowermost)
\r
101 y2: no. of locations
\r
102 ymax: maximum location no.
\r
103 s Read memory { 0x0107, 0x01, 0x01, 0x00, 0x01, xH, xL,
\r
104 yH, yL, 0x00, 0x00}
\r
105 where x: memory type
\r
106 0x01: (256) Dialled numbers
\r
107 0x02: (512) Missed calls
\r
108 0x03: (768) Received calls
\r
109 0x05: (500) telephone phonebook
\r
110 0x06: (160) SIM phonebook
\r
113 0x09: (4) voice mailbox
\r
114 0x0e: (10) speed dials
\r
115 0x10: (5) caller groups
\r
117 r Read memory error { 0x0108, 0x00, 0x01,
\r
118 code,0x00, 0x00, z, error}
\r
120 error: 0x34 - phonebook location not found
\r
121 0x3b - speed dial not assigned
\r
122 r Read memory OK { 0x0108, 0x00, 0x01,
\r
123 code,0x00, 0x00, z, xH, xL, yH, yL, 0x00, 0x00, 0x00, no.of blocks, { block } * }
\r
124 where code: != 0x0f
\r
126 z: generic block size
\r
127 block: {id, 0, 0, blocksize, block no.,
\r
129 id: 0x04 pointer to another memory location { 0xff?, yH, yL, xL,0x00[3] }
\r
130 0x07 name {len, (unicode)},
\r
133 0x0a note {len, (unicode)}
\r
134 0x0b number {type, 0x00[3], len, (unicode)}
\r
135 0x0c ringtone {ringtone no., 0, 0}
\r
136 0x13 date for a called list (DC, RC, etc.)
\r
137 0x1b caller group graphic {width, height, 0, 0 {bitmap}}
\r
138 0x1c caller group graphic on? {(1: yes, 0: no), 0, 0}
\r
139 0x1e caller group number {number, 0, 0}
\r
140 type: 0x0a: General,
\r
141 0x03: Mobile (office ?),
\r
144 0x02: Home (mobile ?)
\r
145 s Set mem location { 0x010b, 0x00, 0x01, 0x01, 0x00, 0x00, z,
\r
146 xH, xL, yH, yL, 0x00, 0x00, 0x00,
\r
147 no.of blocks, { block }[no.of blocks] }
\r
148 r Set mem location { 0x010c, 0?, 1?, code, 0?, 0?, z?, 0?, 0?,
\r
151 0x3d - wrong entry type
\r
152 0x3e - too much entries
\r
153 s Delete mem location { 0x010f, 0x00, 0x01, 0x04, 0x00, 0x00, 0x0c, 0x01, 0xff, xH, xL,
157 r Delete mem location { 0x0110, 0x00, 0x00 }
158 0x06: Calling line restriction/Call forwarding etc
159 r Get call divert { 0x0001, 0x02, x, 0x00, divtype, 0x02, calltype, y, z, 0x0b, number, 0x00...0x00, timeout (byte 45) }
160 s Set call divert { 0x0001, 0x03, 0x00, divtype, calltype, 0x01, number(packed like in SMS), 0x00 ... 0x00,
161 length of number (byte 29), 0x00 ... 0x00, timeout (byte 52), 0x00, 0x00, 0x00}
172 0x02: all diverts for all call types ?
173 Found only, when deactivate all diverts for all call types (with call type 0x00)
176 0x3d: when not answered
179 0x00: all calls (data, voice, fax)
183 s Deactivate calldiverts{ 0x0001, 0x04, 0x00, divtype, calltype, 0x00 }
184 where divtype, calltype: see above
185 s Get call diverts { 0x0001, 0x05, 0x00, divtype, calltype, 0x00 }
186 where divtype, calltype: see above
187 0x0a: Network status
\r
188 s get used network { 0x0070 }
\r
189 r get used network { 0x0071, available,?,?,length,netstatus,netsel,cellIDH,
\r
190 cellIDL,lacH,lacL,MCC+MNC[3],{Opstr}, 4?,
\r
191 len, xlen(78), ylen(21), 0, {bitmap} }
\r
192 where {Opstr}: namelen, {operator name(unicode)}
\r
193 len: {xlen, ylen, 0, {bitmap} + 2
\r
194 {bitmap}: bitmaplen, 0, 0, {OTA bitmap}
\r
195 available: 0x02 if the logo following is valid,
\r
196 0x01 for no operator logo following
\r
197 s get network status { 0x0081 }
\r
198 r get network status { 0x0082, network%, 0x14? }
\r
199 s set operator logo { 0x01a3 0x01, oplogo?, MCC+MNC[3], 0?,4?,len,
\r
200 xlen(78),ylen(21), 0 (frames?),
\r
201 {bitmap}*?, 0x00(padding) }
\r
202 where len, {bitmap}: see 0x0a/0x0071
\r
203 r set operator logo OK { 0x01a4 }
\r
204 s clear operator logo { 0x00af, x}
206 r clear operator logo { 0x00bf}
207 0x13: Calendar notes
\r
208 s Add meeting note { 0x0001, body like in subtype 0x001a...}
\r
209 r Add meeting note { 0x0002, location (2 bytes), status (2 bytes)}
\r
210 s Add call note { 0x0003, body like in subtype 0x001a...}
\r
211 r Add call note { 0x0004, location (2 bytes), status (2 bytes)}
\r
212 s Add birthday note { 0x0005, location (2 bytes), entry type, 0x00, year of birth(2 bytes),
213 Month, Day, 0x00, 0x00, alarm (4 bytes), alarm type, length, text (Unicode)}
214 r Add birthday note { 0x0006, location (2 bytes), status (2 bytes)}
\r
215 s Add reminder note { 0x0007, body like in subtype 0x001a...}
\r
216 r Add reminder note { 0x0008, location (2 bytes), status (2 bytes)}
\r
217 s Delete calendar note { 0x000b, location (2 bytes) }
\r
218 r Delete calendar note { 0x000c, location (2 bytes), ?, ?, ?, ? }
\r
219 s Get calendar note { 0x0019, location (2 bytes) }
\r
220 r Calendar note recvd { 0x001a, location (2 bytes), entry type, 0x00, year (2 bytes), Month, Day, block}
\r
221 where: entry type - 0x01 - Meeting, 0x02 - Call, 0x04 - Birthday, 0x08 - Reminder
\r
222 block: for Meeting:{hour,minute,alarm (two bytes),recurrance (two bytes),len,0x00,string(unicode)}
\r
223 where alarm=Number of minutes before the time of the meeting
\r
224 that the alarm should be triggered:
\r
225 For meetings with "No alarm"=0xFFFF (-1).
\r
226 For "On time"=0x0000
\r
227 half an hour=0x001E, and so on.
\r
228 Recurrance=in hours, between future occurances of this meeting.
\r
229 If there is no repeat, this value is 0x0000. The special value 0xffff
\r
231 for Call:{Hour,Minute,Alarm (as above),Recurrance (as above),namelen,numberlen,
\r
232 name(unicode),number(unicode)}
\r
233 for Reminder:{Recurrance (as above),len,0x00,string(unicode)}
\r
234 for Birthday:{byte1,byte2,alarm(4 bytes),yearofbirth,alarmtype,len,string(unicode)}
\r
235 byte1 and byte2 may vary (???). Usually are 0x00 both (but not always)
\r
236 In Birthday, the Year in the common part, usually contains a strange year.
\r
237 So, don't consider it as Year of note, neither year of BirthDay (for Year of
\r
238 Birthday use the value described below).
\r
239 where alarm=32-bit integer that is the number of seconds between the desired
\r
240 alarm time and 11:59:58pm on the birthday.For "No Alarm", the value is
\r
241 0x0000FFFF (65535).
\r
242 YearOfBirth=used instead of the one in the common part of the entry (see above)
\r
243 but only when reading birthday entries. For storing entries, this field does
\r
245 AlarmType: 0x00 - Tone, 0x01 - Silent
\r
247 ? r??? { 0x0022, 0x5A, 0x00 }
\r
249 ? r??? { 0x0026, 0x04, 0x00 }
\r
251 ? r { 0x002A, 0x04, 0x00 }
\r
252 s Get first free pos { 0x0031 }
\r
253 r Get first free pos { 0x0032, location (2bytes) }
\r
254 s Get notes info { 0x003a, 0xFF, 0xFE}
\r
255 r Get notes info { 0x003b, how many notes used (2 bytes), 0x01, 0x07, { two bytes with location for each note} *}
\r
256 ? s Get calendar note?? { 0x003E, location (2 bytes) }
\r
257 ? r Get calendar note?? { 0x003F, location (2bytes), ... }
\r
259 s Get Picture Image { 0x0007, location, number[2 bytes], 0x00, 0x64 }
\r
260 r Get Picture Image { 0x0008, 0x07, location, number[2 bytes], 0x07, ??[38],
\r
261 width, height, lenH, lenL, {bitmap}, 0x00, 0x00, text len, text(coded like in SMS)...}
\r
262 r Get SMS failed { 0x0009, 0x02 },
263 s Get SMS status { 0x0036, 0x64 }
264 r Get SMS Status { 0x0037, 0x05/0x03, 0x01, 0x00, 0x00,
\r
265 a (2 octets), b (2 octets), c (2 octets),
\r
266 d (2 octets), e (2 octets), 0x00
\r
268 a - according to P.Kot:
\r
269 Number of locations in "fixed" memory. These are all
\r
270 Templates entries in my Nokias 6210 (NPE-3 (c) NMP V05.36
\r
271 14-11-01, NPE-3 (c) NMP V05.27 01-08-01).
\r
272 I can't remove any of Templates entries in my phone.
\r
273 Marcin Wi¥cek: Rather not ! I don't agree.
\r
274 I have 0x00, 0x0f and 10 templates and 3 SMS
\r
275 and 10 Picture Images.
\r
276 b - Number of used messages in phone memory. These
\r
277 are messages manually moved from the other folders.
\r
278 Picture messages are saved here.
\r
279 c - Number of unread messages in phone memory. Probably
\r
280 only smart messsages.
\r
281 d - Number of used messages in SIM memory. These are
\r
282 either received messages or saved into Outbox/Inbox.
\r
283 Note that you *can't* save message into this memory
\r
284 using 'Move' option. Picture messages are not here.
\r
285 e - Number of unread messages in SIM memory
\r
287 s Set Picture Image { 0x0050, 0x07, location, number[2 bytes], 0x07, ??[38],
\r
288 width, height, lenH, lenL, {bitmap}, 0x00, 0x00, text len, text(coded like in SMS)...}
\r
290 r Set Picture Image { 0x0051, location, number[2 bytes], 0x07 }
\r
291 s Set SMS name { 0x0083,folder,location(2bytes),name(Unicode),0x00 , 0x00}
\r
292 r Set SMS name { 0x0084,folder,0x00, 0x00, name (Unicode),0x00,0x00}
\r
293 s List Picture Images { 0x0096, location, 0x0f, 0x07 }
\r
295 LM tries with 0x09, 0x11, 0x19, 0x21, 0x29, 0x31, 0x39, 0x41, 0x49
\r
296 Returned value with 0x21
\r
297 r List Picture Images { 0x0097, number of pictures[2 bytes], number1[2 bytes], number2[2 bytes], ..., }
\r
298 s Write SMS to folder { 0x0104, status, folder ID, location(2 bytes), 0x02, 0x01, SMS stuff ... }
299 r Write SMS to folder { 0x0105, folder ID, location(2 bytes), 0x00 }
300 r Write SMS to folder { 0x0106, 0x02 (write failed errorcode ?) }
301 s Get SMS from folder { 0x0107, folderID, location(2 bytes), 0x01, 0x65, 0x01}
\r
302 where: folderID - see 0x14/0x017B
\r
303 r Get SMS from folder { 0x0108, status, folderID, 0x00, location, type, sender number,...}
305 where: status=0x01 - reveived/read
306 0x03 - received/unread
308 0x07 - stored/not sent
310 where: folderID - see 0x14/0x017B
312 where: type=0x00 - received SMS
313 0x01 - delivery report
315 0x07 - picture message
\r
316 s Delete SMS message { 0x010a, folderID, location(2 bytes), 0x01 }
317 r Delete SMS { 0x010b }
318 s Get folder status { 0x016b, folderID, 0x0F, 0x01}
\r
319 where: folderID - see 0x14/0x017B
\r
320 r Get folder status { 0x016c, number of entries (2 bytes), entry1number (2 bytes), entry2number(2 bytes), ....}
\r
321 s Get folder names { 0x017A, 0x00, 0x00}
\r
322 r Get folder names { 0x017B, number of strings, folderID, name1, 0x00, folderID, name2, 0x00, name3, 0x00,...}
\r
323 where: folderID=0x08 - Inbox
\r
327 0x29 - first "My folders"
328 0x31 - second "My folders"
332 s Get Battery info { 0x0002 }
\r
333 r Get Battery info { 0x0003, 0x0b, batt%, 0x14?, 0x01? }
\r
334 0x19: Phone clock & alarm
\r
336 These frames are like the same frames subtypes in 0x11 in 6110
\r
338 s set date and time { 0x0060, 1,1,7,yearh,yearl,month,mday,hour,min,0x00 }
\r
339 r date and time set { 0x0061 }
\r
340 s get date and time { 0x0062 }
\r
341 r date and time recvd { 0x0063,date_set?,time_set?,?,?,yearh,yearl,month,mday,hour,min,second }
\r
342 where: date_set & time_set==0x01 - set
\r
343 0x00 - not set, ?,?,yearh,yearl,month,mday,hour,min,second
\r
344 not available in frame
\r
345 s set alarm { 0x006b, 1,32,3,0x02(on-off),hour,min,0x00 }
\r
346 r alarm set { 0x006c }
\r
347 s get alarm { 0x006d }
\r
348 r alarm received { 0x006e,?,?,?,?,alrm(==2:on),hour,min }
\r
352 ? s ?? { 0x0083, id }
\r
353 ? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x00 }
\r
354 ? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x01 }
\r
355 ? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x01, 0x00 }
\r
356 where: id=0x27,0x2a,0x32,0x28,0x40
\r
358 s Get IMEI { 0x0001 }
\r
359 r Get IMEI { 0x0002, {IMEI(ASCII)}, 0x00 }
\r
360 s get HW&SW version { 0x0003, 0x01, 0x32 }
\r
361 r get HW&SW version { 0x0004, "V " "firmware\n" "firmware date\n"
\r
362 "model\n" "(c) NMP." 0x00 0xff[14] }
\r
364 s ??? { 0x0010, 0x02, 0x00, 0xff, 0xff }
\r
365 r ??? { 0x0011, length, 0x00, {block}[length] }
\r
366 where block: { unicode letter[2], 0x0000,
\r
367 0x00, 0x55, ??, ?? }
\r
368 s Set ringtone { 0x011f, 0x00, location, 0x00, name(Unicode),
\r
369 ringtone(format the same to 0x40/0x019e and 0x40/0x01a0) }
\r
370 where: location: 0x87 to 0x8b on N6210
\r
371 0x74 to ... on N7110
\r
372 s Get ringtone { 0x0122, 0x00, location}
\r
373 r Get ringtone { 0x0123, 0x00, location, name(Unicode), 0x00,...,0x00, 0x02,0xFC,0x09(ringtone contenst)}
\r
374 r Get ringtone error { 0x0124, ...}
\r
376 s get profile feature { 0x0101, 0x01, 0x01, 0x01, number1, number2}
\r
377 where number1: from 0x00 to 0x07 (for each profile ?)
\r
378 number2: 0x00 - 0x09, 0x0A, 0x16 - 0x19, 0x1a - 0x1f, 0x20 - 0x29, 0x2a - 0x2c, 0xff
\r
379 where 0x09: keypad tones
\r 0x02: incoming call alert
\r 0x03: ringtone number
\r
380 0x04: ringing volume
\r
381 0x05: message alert tone
\r 0x06: vibra
\r 0x07: warning tones
\r 0x08: caller groups alert for
\r 0x09: automatic answer
383 r get profile feature { 0x0102, 0x01, 0x02, number2, block...}
\r
384 for number2==0xff: (Profile Name)
\r
385 block: 0x01, length, name(Unicode), 0x00, 0x00
\r
386 for number2==0x00: (Keypad Tones)
\r
387 block: 0x01, 0x01, 0x01, Type, 0x01
\r
388 where: Type : 0x00 = Off
\r
389 0x01 to 0x03 = Level1 .. Level3
\r
390 for number2==0x02: (Incoming Call Alert)
\r
391 block: 0x01, 0x01, 0x01, Type, 0x01
\r
392 where: Type : 0x00 = Ringing
\r
397 for number2==0x03: (Ringtone Number)
\r
398 block: 0x01, 0x01, 0x01, Number, 0x01
\r
399 where: Number : 0x40 to 0x62 - gives number of factory ringtone. The number of menu is
\r
400 obtained by doing (Number - 0x3f);
\r
401 where: Number : 0x89 to 0x8d - gives number of uploaded ringtone. The number of menu is
\r
402 obtained by doing (Number - 0x65),while the uploaded ringtone number is
\r
403 obtained by doing (Number - 0x88).
\r
404 for number2==0x04: (Ringing volume)
\r
405 block: 0x01, 0x??, 0x??, Volume, 0x01
\r
406 where: Volume : 0 = Level1 .. to 4 = Level5
\r
407 for number2==0x05: (Message Alert Tone)
\r
408 block: 0x01, 0x01, 0x??, Type, 0x01
\r
409 where: Type : 0x00 = Off
\r
414 for number2==0x06: (Vibration)
\r
415 block: 0x01, 0x??, 0x??, Switch, 0x01
\r
416 where: Switch : 0 = Off, 1 = On
\r
417 for number2==0x07: (Warning Tones)
\r
418 block: 0x01, 0x??, 0x??, Switch, 0x01
\r
419 where: Switch : 0 = Off, 1 = On
\r
420 for number2==0x08: (Caller groups Alert for)
\r
421 block: 0x01, 0x??, 0x??, Callers, 0x01
\r
422 where: Callers : 0xff = All calls alert (Read below *)
\r
428 All logical OR among groups are valid, so if you select from one phone's profile
\r
429 alert for Friends and Collegues, a 0x0c will return (because 0x04 OR 0x08 = 0x0c).
\r
430 (*) If Callers==0xff, means "Alert for All calls". Then, in this case, you don't
\r
431 need to read other groups selection.
\r
432 for number2==0x09: (Automatic answer)
\r
433 block: 0x01, 0x??, 0x??, Switch, 0x01
\r
434 where: Switch : 0 = Off, 1 = On
\r
435 N.B. This feature is valid for Handsfree and Headset profiles only!
\r
436 s ??? { 0x0101, 0x04, 0x01, 0x01, 0xff, 0x03 }
\r
437 r ??? { 0x0102, 0x01, 0x02, 0x03, 0x01, 0x01, 0x01, 0x85/0x087 }
\r
440 r ? { 0x0106, 0x01, 0x04}
\r
442 s Enable WAP frames { 0x0000}
\r
443 r Enable WAP frames { 0x0002, 0x01}
\r
448 s Get WAP bookmark { 0x0006, 0x00, location}
\r
449 where location: 0 - 14
\r
450 r Get WAP bookmark { 0x0007, 0x00, name_len, name(unicode),
\r
451 url_len, url(unicode), 0x01,0x80,0x00[7]}
\r
452 r Get WAP bookmark err { 0x0008, error }
\r
454 0x00(?)invalid position
\r
455 0x01 user inside "Bookmarks" menu. Must leave it
\r
456 0x02 invalid/too high/empty location
\r
458 s Set WAP bookmark { 0x0009, 0xff, 0xff, name_len, name(unicode),
\r
459 url_len, url(unicode), 0x01,0x80,0x00[7] }
\r
460 Note: bookmark is added to the first free location.
\r
461 r Set WAP bookmark OK {+0x01, 0x36, 0x0a, block }
\r
463 0x0a, location_of_just_written_bookmark(?),
\r
464 0x00, next_free_location(?)
\r
465 r Set WAP bookmark err {+0x01, 0x36, 0x0b, error }
\r
467 0x04 - memory is full
\r
468 0x01 - we are in the bookmark menu
\r
469 0x00 - unknown reason for now ;(
\r
471 ? s Delete WAP bookmark { 0x000c, 0x00, location }
\r
472 where: location = 0-14
\r
473 ? r Delete WAR bookmark OK{ 0x000d }
\r
474 ? r Delete WAPbookmark err{ 0x000e, 0x02 }
\r
477 r ?? { 0x0010, 0x00}
\r
479 s Get WAP settings 1 { 0x0015, location}
\r
480 where location: 0x00 - 0x05
\r
481 r Get WAP settings 1 OK { 0x0016, title length, title (Unicode), URL length, URL(Unicode),con_type, ???[6 bytes],location, ???[5 bytes],security,...}
\r
483 con_type: 0x00 - temporary
\r
485 location: when use "Get WAP settings 2 frame", must give it
\r
486 security: 0x00 = no, 0x01 = yes
\r
487 r Get WAP settings 1 err{ 0x0017, error }
\r
489 0x01 user inside "Settings" menu. Must leave it
\r
490 0x02 invalid/too high/empty location
\r\r
491 s Get WAP settings 2 { 0x001b, location}
\r
492 where location: 0x00 - 0x1d (you get it in "Get WAP settings 1" frame)
\r
493 r Get WAP settings 2 OK { 0x001c, 0x01, type, frame...}
\r
494 where type : 0x00 - SMS bearer
\r
496 service_num_len, service_num (Unicode), server_num_len, server_num(Unicode)
\r
499 auth, call_type, call_speed, ?, IP len, IP (Unicode), dialup len, dialup (Unicode),
\r
500 user len, user (Unicode), password len, password (Unicode)
\r
501 where auth: 0x00 - normal, 0x01 - secure
\r
502 call_type: 0x00 - analogue, 0x01 - ISDN
\r
503 call_speed: 0x00 - 9600, 0x01 - 14400
\r
505 frame: type, service number len/IP len,service num (Unicode)/IP (Unicode),service code len,
506 service code (Unicode)
507 where type: 0x01 - service number, 0x00 - IP
508 r Get WAP settings 2 err{ 0x001d,error}
\r
510 0x40: Security commands
\r
511 ? s ???(N6150) { 0x08, 0x00 }
\r
512 ? r ???(N6150) { 0x08 }
\r
513 s Enable extended cmds { 0x64, cmd }
\r
514 where cmd: 0x00: off
\r
516 0x03: reset (doesn't ask for PIN again)
\r
517 0x04: reset (PIN is requested)
\r
518 In 5110 makes reset without PIN
\r
519 0x06: CONTACT SERVICE!!! Don't try it!
\r
520 s Get IMEI { 0x66 }
\r
521 r Get IMEI { 0x66, 0x01, IMEI, 0x00}
\r
522 s (ACD Readings)?(N6150 { 0x68 }
\r
523 r (ACD Readings)?(N6150 { 0x68, ... }
\r
524 s Get Product Profile
\r
526 r Get Product Profile
\r
527 Settings { 0x6a, 4bytes with Product Profile Settings }
\r
528 s Set Product Profile
\r
529 Settings { 0x6b, 4bytes with Product Profile Settings }
\r
530 r Set Product Profile
\r
531 Settings OK ? { 0x6b }
\r
532 s Get code { 0x6e, code }
\r
533 where code: see 0x08/0x0004 (no allowed code !)
\r
534 r Get code { 0x6e, code, allowed, allowed? (sec code (text)) }
\r
535 where code: see 0x08/0x0004
\r
538 ? s Reset Permanent
\r
539 ? Counters (nm->test36) { 0x74, 0x01, 0x01, 0x0e }
\r
540 ? r Reset Permanent
\r
541 ? Counters (nm->test36) { 0x74 }
\r
542 s Call commands { 0x7c, block }
\r
543 where where: command, (values)
\r
545 values: number(ASCII), 0x00 - makes voice call
\r
546 command: 0x02 - answer call
\r
547 command: 0x03 - release call
\r
548 r Call commands { 0x7c, command }
\r
549 s Netmonitor { 0x7e, field }
\r
550 where: field: 00: next
\r
553 F2: field test menus
\r
554 F3: developer menus
\r
555 s Get simlock info { 0x8a, 0x00}
\r
556 r Get simlock info { 0x8a, 0x00, 0x01, lockstype, locksclosed, 0x00, 0x00, locksinfo(lock1,4,2,3), counter1,counter2,counter4,counter4,0x00 }
\r
557 where: lockstype: bit1,bit2,bit3,bit4 - if set, selected lock is user lock
\r
558 locksclosed: bit1,bit2,bit3,bit4 - if set, selected lock is closed
\r
559 counter1 - counter4: counters for locks
\r
560 s Buzzer pitch { 0x8f, volume, hzLO, hzHI }
\r
561 if volume and hz is 0, it's off
\r
562 r Buzzer pitch { 0x8f}
\r
563 s ACD Readings ? { 0x91, parameter?(0x02,0x03,0x04,0x05,0x07) }
\r
564 r ACD Readings ? { 0x91, parameter?, value? }
\r
565 ? s ???(N6150) { 0x98, 0x00 }
\r
566 ? r ???(N6150) { 0x98, 0x00, 0x04 }
\r
567 s Get bin ringtone { 0x9e, location }
\r
568 where: location=0,1,etc.
\r
569 r Get bin ringtone { 0x9e, location, error, contents... }
\r
570 where location=0,1,etc.
\r
571 error=0x0a, ringtone NOT available
\r
573 s Set bin ringtone { 0xa0, location, 0x00, contenst... }
\r
574 where: location=0,1,etc.
\r
575 r Set bin ringtone { 0xa0, location, error }
\r
576 where location=0,1,etc.
\r
577 error=0x0a, ringtone NOT set
\r
578 0x00, ringtone set OK
\r
579 ? r Get MSid { 0xb5, 0x01, 0x2f, msid, 0x25 }
\r
580 s Get info about phone { 0xc8, 0x01 }
\r
581 r Get info about phone { 0xc8, 0x01, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
\r
582 s Get MCU SW Checksum { 0xc8, 0x02 }
\r
583 r Get MCU SW Checksum { 0xc8, 0x02, 0x00, checksum (4 bytes),0x00 }
\r
584 s DPS External SW { 0xc7, 0x03 }
\r
585 r DSP External SW { 0xc7, 0x03, 0x00, string,0x00 }
\r
586 s Get HW { 0xc8, 0x05 }
\r
587 r Get HW { 0xc8, 0x05, 0x00, HW version (4 bytes), 0x00 }
\r
588 s Get "Made" Date { 0xc8, 0x05 }
\r
589 r Get "Made" Date { 0xc8, 0x05, 0x00, date(4 bytes), 0x00 }
\r
590 s Get DSP Internal SW { 0xc8, 0x09 }
\r
591 r Get DSP Internal SW { 0xc8, 0x09, 0x00, version (1 bytes), 0x00 }
\r
592 s Get PCI version { 0xc8, 0x0b }
\r
593 r Get PCI version { 0xc8, 0x0b, 0x00, version, 0x00 }
\r
594 s Get system ASIC { 0xc8, 0x0c }
\r
595 r Get system ASIC { 0xc8, 0x0c, 0x00, string, 0x00 }
\r
596 s Get COBBA { 0xc8, 0x0d }
\r
597 r Get COBBA { 0xc8, 0x0d, 0x00, string, 0x00 }
\r
598 s Get PLUSSA { 0xc8, 0x0e }
\r
599 r Get PLUSSA { 0xc8, 0x0e, available, 0x00 }
\r
600 where available: 0x01: not available
\r
601 s Get CCONT { 0xc8, 0x0f }
\r
602 r Get CCONT { 0xc8, 0x0f, available, 0x00 }
\r
603 where available: 0x01: not available
\r
604 s Get PPM version { 0xc8, 0x10 }
\r
605 r Get PPM version { 0xc8, 0x10, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
\r
606 s Get PPM info { 0xc8, 0x12 }
\r
607 r Get PPM info { 0xc8, 0x12, 0x00, PPM version ("B", "C", etc.), 0x00 }
\r
608 s Set HW version { 0xc9, 0x05, version, 0x00 }
\r
609 s Get Product Code { 0xca, 0x01 }
\r
610 r Get Product Code { 0xca, 0x01, 0x00, number, 0x00 }
\r
611 s Get Order Number { 0xca, 0x02 }
\r
612 r Get Order Number { 0xca, 0x02, 0x00, string, 0x00 }
\r
613 s Get Prod.Ser.Number { 0xca, 0x03 }
\r
614 r Get Prod.Ser.Number { 0xca, 0x03, 0x00, number, 0x00 }
\r
615 s Get Basic Prod.Code { 0xca, 0x04 }
\r
616 r Get Basic Prod.Code { 0xca, 0x04, 0x00, number, 0x00 }
\r
617 s Set Product Code { 0xcb, 0x01, product code, 0x00 }
\r
618 s Set Order Number { 0xcb, 0x02, number, 0x00 }
\r
619 s Set Prod.Ser.Number { 0xcb, 0x03, number, 0x00 }
\r
620 s Get (original ?)IMEI { 0xcc, 0x01 }
\r
621 r Get (original ?)IMEI { 0xcc, 0x01, IMEI, 0x00 }
\r
622 s Get Manufacture Month { 0xcc, 0x02 }
\r
623 r Get Manufacture Month { 0xcc, 0x02, 0x00, string, 0x00 }
\r
624 s Get Purchare date { 0xcc, 0x04 }
\r
625 r Get Purchare date { 0xcc, 0x04, 0x00, string, 0x00 }
\r
626 s Set "Made" date { 0xcd, 0x02, string, 0x00 }
\r
627 s Make "all" phone tests{ 0xce,0x1d,0xfe,0x23,0x00,0x00}
\r
628 s Make one phone test { 0xce,0x1d,num1,num2,num3,num4}
\r
629 Where num1-num4: 0x02,0x00,0x00,0x00;
\r
630 0x04,0x00,0x00,0x00;
\r
631 0x08,0x00,0x00,0x00;
\r
632 0x10,0x00,0x00,0x00;
\r
633 0x20,0x00,0x00,0x00;
\r
634 0x40,0x00,0x00,0x00;
\r
635 0x80,0x00,0x00,0x00;
\r
636 0x00,0x01,0x00,0x00;
\r
637 0x00,0x02,0x00,0x00;
\r
638 0x00,0x04,0x00,0x00; - "Power off"
\r
639 No test for "Security data"
\r
640 0x00,0x10,0x00,0x00;
\r
641 0x00,0x20,0x00,0x00;
\r
642 0x00,0x40,0x00,0x00;
\r
643 0x00,0x80,0x00,0x00;
\r
644 0x00,0x00,0x01,0x00;
\r
646 0x00,0x00,0x10,0x00;
\r
647 s Result of phone tests { 0xcf }
\r
648 r Result of phone tests { 0xcf, number of tests, results of next tests }
\r
650 ? r ???(N5110) { 0xd1, 0x00, 0x1d, 0x00, 0x01, 0x08, 0x00 }
\r
651 s LCD Test { 0xd3, value }
\r
652 where value: 0x03, 0x02 - 1'st test
\r
653 0x03, 0x01 - 2'nd test
\r
654 0x02, 0x03 - clears screen
\r
655 s ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01}
\r
656 r ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01, ?}
\r
657 r Function of { 0xff, 0x8c }
\r
661 s Status confirm { 0x0201, 0x03 }
\r
662 r Incoming call seq1 { 0x0102 0x0e 0x03 }
\r
663 r Incoming call seq2 { 0x0102 0x7e 0x01 }
\r
665 s CarKit enable { 0x0201 0x01 0x62 0x00 }
\r
666 r CarKit enabled { 0x0201 0x02 0x06 0x00 "V " {version} "\nHFU"
\r
669 r Set setting { 0x01eb, number, 0x00 }
\r
670 s Set setting { 0x01ec, number, contents }
\r
672 0x02 (startup text) : 0x00, text (Unicode)
\r
673 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,
\r
674 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,
\r
675 0xc0, 0x04, 0x03, 0x00, {bitmap} }
\r
676 where width, height, {bitmap}: see 0x7a/0x01ed 0x15
\r
677 s Get setting { 0x01ee, number}
\r
678 where number: 0x01 - 0x1e
\r
681 0x1c: security code
\r
682 r Get setting { 0x01ed,number, 0x00, contents}
\r
684 0x02 (startup text) : 0x00, text (Unicode)
\r
685 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,
\r
686 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,
\r
687 0xc0, 0x04, 0x03, 0x00, {bitmap} }
\r
688 where height: 60 (0x3c) or 65
\r
690 {bitmap}: like other bitmaps but pixels
\r
692 0x1c (security code): {code(ascii)}, 0x00
\r
693 0x7f: Acknowledge(FBUS/IRDA){+type, seq }
\r
694 Acknowledge(MBUS)...
\r
696 s Power on message seq1 {+04 }
\r
697 r Power on message seq1 {+05 }
\r
699 s Get HW&SW version { 0x0003, 0x00 }
\r
701 r Get HW&SW version { 0x0003 "V " "firmware\n" "firmware date\n"
\r
702 "model\n" "(c) NMP." }
\r
703 0xf4: Power on message seq 2
\r