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