-
+\r
Last update 16.02.2002
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Assembled by
- Balazs Nagy (js@lsc.hu)
- Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)
- Jens Bennfors <jens.bennfors@ing.hj.se>
- Michael Hund <michael@drhund.de>
- Jay Bertrand <jay.bertrand@libertysurf.fr>
- Gabriele Zappi <gzappi@inwind.it>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+\r
+Assembled by\r
+ Balazs Nagy (js@lsc.hu)\r
+ Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)\r
+ Jens Bennfors <jens.bennfors@ing.hj.se>\r
+ Michael Hund <michael@drhund.de>\r
+ Jay Bertrand <jay.bertrand@libertysurf.fr>\r
+ Gabriele Zappi <gzappi@inwind.it>\r
Markus Plail <plail@web.de>
Ralf Thelen <ralf@mythelen.de>
- ... and other members of gnokii mailing list
- and authors of some WWW pages.
-
-The data provided is for information purposes only.
-Some of the frames might be hazardous to your phone. Be careful!!!
-We do not take any responsibility or liability for damages, etc.
-
-NOTE: this information isn't (and can't be) complete. If you know anything
-about features not listed here or you noticed a bug in this list, please
-notify us via e-mail. Thank you.
-
-Document describing frames used in
-GSM Nokia 6210 and derivatives (7110)
-Correct format is FBUS version 2/Infrared/MBUS version 2
-(see nokia.txt for protocol details):
-
- List:
-
-0x00: Connect to NBS port ?
- r Set ringtone {+0x7c,0x01,0x00,0x0d,0x06[6],0x78,ringtone packed according to SM2.0}
- Seems not to work in MBUS!
-0x01: Communication Status
-? r Call msg { 0x0002 }
-? r Call in progress { 0x0003, seqnr }
-? r Remote end hang up { 0x0004, seqnr, ?, error (like in netmon in 39) }
-? r incoming call alert { 0x0005, seqnr, numlen, "number", namelen, "name" }
-? r answered call { 0x0007, seqnr }
-? r terminated call { 0x0009, seqnr }
-? r call msg { 0x000a, seqnr }
- Note: in 6210 4.27 all msg from 0x01 seems to be unavailable
-0x02: SMS handling
- s Send SMS message { 0x0001, 0x02, 0x00 (SEND REQUEST), ... }
- r Message sent { 0x0002 }
- r Send failed { 0x0003, ?, ?, error (like in netmon in 65)}
- s Incoming SMS info on { 0x000d, 0x00, 0x00, 0x02}
- note: no info about Delivery Reports
- r Incoming SMS info onOK{ 0x000e }
- note: no info about Delivery Reports
- r Incoming SMS infoonerr{ 0x000f, error }
- where error: 0x0c - no PIN
- r SMS message received { 0x0011, ...... } (whole message)
- s Set CellBroadcast { 0x0020, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01 }
- for enable cell broadcast ?
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- for disable cell broadcast ?
- r Set CellBroadcast OK { 0x0021, 0x01 }
- r Read CellBroadcast { 0x0023, ?, ?, ?, channel, ?, message... } ?
- s Set SMS center { 0x0030, 0x64, priority, checksum?, format,
- validity[2], {DefaultRecipient no.}[12],
- {SMScenter no.}[12], {SMSC name}, 0x00}
- where tel.no.[12]: {len, type, {number(BCD)}}
- type: 0x81: normal
- 0x91: + (international)
- 0xd0: alphanumeric
- format: 0x00: text
- 0x22: fax
- 0x24: voice
- 0x25: ERMES
- 0x26: paging
- 0x31: X.400
- 0x32: email
- validity: 0x000b: 1 hour
- 0x0047: 6 hours
- 0x00a7: 24 hours
- 0x00a9: 72 hours
- 0x00ad: 1 week
- 0x00ff: max.time
- r Set SMS center OK { 0x0031 }
- r Set SMS center error { 0x0032, reason }
- s Get SMS center { 0x0033, 0x64, priority }
- r SMS center received { 0x0034, priority, checksum?, type,
- validity[2], {DefaultRecipient no.}[12],
- {SMScenter no.}[12], {SMSC name}, 0x00 }
- where priority, checksum, type, validity,
- tel.no.[12]: see 0x02/0x0030
- r SMS center error recv { 0x0035, reason }
- s?? { 0x0074}
- r?? { 0x0075, 0xFF, 0x11, 0x98}
- s?? { 0x008C}
- r?? { 0x008D, 0x00}
-0x03: Phonebook functions
- s Get memory status { 0x0103, 0x02, memory type }
- where: memory type - see 0x03/0x0107
- r Get memory status { 0x0104, 0x00, xL, 0x00[2], y1H, y1L, 0x10,
- 0x00[2], z?, ymaxH, ymaxL, y2H, y2L,
- 0x0d?, xH?, 0x00[2]? }
- where y1: location (lowermost)
- y2: no. of locations
- ymax: maximum location no.
- s Read memory { 0x0107, 0x01, 0x01, 0x00, 0x01, xH, xL,
- yH, yL, 0x00, 0x00}
- where x: memory type
- 0x01: (256) Dialled numbers
- 0x02: (512) Missed calls
- 0x03: (768) Received calls
- 0x05: (500) telephone phonebook
- 0x06: (160) SIM phonebook
- 0x07: (10/0)
- 0x08: (1/0)
- 0x09: (4) voice mailbox
- 0x0e: (10) speed dials
- 0x10: (5) caller groups
- y: location
- r Read memory error { 0x0108, 0x00, 0x01,
- code,0x00, 0x00, z, error}
- where code==0x0f
- error: 0x34 - phonebook location not found
- 0x3b - speed dial not assigned
- r Read memory OK { 0x0108, 0x00, 0x01,
- code,0x00, 0x00, z, xH, xL, yH, yL, 0x00, 0x00, 0x00, no.of blocks, { block } * }
- where code: != 0x0f
- y: location
- z: generic block size
- block: {id, 0, 0, blocksize, block no.,
- {contents}, 0x00}
- id: 0x04 pointer to another memory location { 0xff?, yH, yL, xL,0x00[3] }
- 0x07 name {len, (unicode)},
- 0x08 email
- 0x09 postal
- 0x0a note {len, (unicode)}
- 0x0b number {type, 0x00[3], len, (unicode)}
- 0x0c ringtone {ringtone no., 0, 0}
- 0x13 date for a called list (DC, RC, etc.)
- 0x1b caller group graphic {width, height, 0, 0 {bitmap}}
- 0x1c caller group graphic on? {(1: yes, 0: no), 0, 0}
- 0x1e caller group number {number, 0, 0}
- type: 0x0a: General,
- 0x03: Mobile (office ?),
- 0x06: Work,
- 0x04: Fax,
- 0x02: Home (mobile ?)
- s Set mem location { 0x010b, 0x00, 0x01, 0x01, 0x00, 0x00, z,
- xH, xL, yH, yL, 0x00, 0x00, 0x00,
- no.of blocks, { block }[no.of blocks] }
- r Set mem location { 0x010c, 0?, 1?, code, 0?, 0?, z?, 0?, 0?,
- yH, yL, xL }
- where code:
- 0x3d - wrong entry type
- 0x3e - too much entries
+ ... and other members of gnokii mailing list\r
+ and authors of some WWW pages.\r
+\r
+The data provided is for information purposes only. \r
+Some of the frames might be hazardous to your phone. Be careful!!! \r
+We do not take any responsibility or liability for damages, etc.\r
+\r
+NOTE: this information isn't (and can't be) complete. If you know anything\r
+about features not listed here or you noticed a bug in this list, please\r
+notify us via e-mail. Thank you.\r
+\r
+Document describing frames used in\r
+GSM Nokia 6210 and derivatives (7110)\r
+Correct format is FBUS version 2/Infrared/MBUS version 2\r
+(see nokia.txt for protocol details):\r
+\r
+ List:\r
+\r
+0x00: Connect to NBS port ?\r
+ r Set ringtone {+0x7c,0x01,0x00,0x0d,0x06[6],0x78,ringtone packed according to SM2.0}\r
+ Seems not to work in MBUS!\r
+0x01: Communication Status\r
+? r Call msg { 0x0002 }\r
+? r Call in progress { 0x0003, seqnr }\r
+? r Remote end hang up { 0x0004, seqnr, ?, error (like in netmon in 39) }\r
+? r incoming call alert { 0x0005, seqnr, numlen, "number", namelen, "name" }\r
+? r answered call { 0x0007, seqnr }\r
+? r terminated call { 0x0009, seqnr }\r
+? r call msg { 0x000a, seqnr }\r
+ Note: in 6210 4.27 all msg from 0x01 seems to be unavailable\r
+0x02: SMS handling\r
+ s Send SMS message { 0x0001, 0x02, 0x00 (SEND REQUEST), ... }\r
+ r Message sent { 0x0002 }\r
+ r Send failed { 0x0003, ?, ?, error (like in netmon in 65)}\r
+ s Incoming SMS info on { 0x000d, 0x00, 0x00, 0x02}\r
+ note: no info about Delivery Reports\r
+ r Incoming SMS info onOK{ 0x000e }\r
+ note: no info about Delivery Reports\r
+ r Incoming SMS infoonerr{ 0x000f, error }\r
+ where error: 0x0c - no PIN\r
+ r SMS message received { 0x0011, ...... } (whole message)\r
+ s Set CellBroadcast { 0x0020, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01 }\r
+ for enable cell broadcast ?\r
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }\r
+ for disable cell broadcast ?\r
+ r Set CellBroadcast OK { 0x0021, 0x01 }\r
+ r Read CellBroadcast { 0x0023, ?, ?, ?, channel, ?, message... } ?\r
+ s Set SMS center { 0x0030, 0x64, priority, checksum?, format,\r
+ validity[2], {DefaultRecipient no.}[12],\r
+ {SMScenter no.}[12], {SMSC name}, 0x00}\r
+ where tel.no.[12]: {len, type, {number(BCD)}}\r
+ type: 0x81: normal\r
+ 0x91: + (international)\r
+ 0xd0: alphanumeric\r
+ format: 0x00: text\r
+ 0x22: fax\r
+ 0x24: voice\r
+ 0x25: ERMES\r
+ 0x26: paging\r
+ 0x31: X.400\r
+ 0x32: email\r
+ validity: 0x000b: 1 hour\r
+ 0x0047: 6 hours\r
+ 0x00a7: 24 hours\r
+ 0x00a9: 72 hours\r
+ 0x00ad: 1 week\r
+ 0x00ff: max.time\r
+ r Set SMS center OK { 0x0031 }\r
+ r Set SMS center error { 0x0032, reason }\r
+ s Get SMS center { 0x0033, 0x64, priority }\r
+ r SMS center received { 0x0034, priority, checksum?, type,\r
+ validity[2], {DefaultRecipient no.}[12],\r
+ {SMScenter no.}[12], {SMSC name}, 0x00 }\r
+ where priority, checksum, type, validity,\r
+ tel.no.[12]: see 0x02/0x0030\r
+ r SMS center error recv { 0x0035, reason }\r
+ s?? { 0x0074}\r
+ r?? { 0x0075, 0xFF, 0x11, 0x98}\r
+ s?? { 0x008C}\r
+ r?? { 0x008D, 0x00}\r
+0x03: Phonebook functions\r
+ s Get memory status { 0x0103, 0x02, memory type }\r
+ where: memory type - see 0x03/0x0107\r
+ r Get memory status { 0x0104, 0x00, xL, 0x00[2], y1H, y1L, 0x10,\r
+ 0x00[2], z?, ymaxH, ymaxL, y2H, y2L,\r
+ 0x0d?, xH?, 0x00[2]? }\r
+ where y1: location (lowermost)\r
+ y2: no. of locations\r
+ ymax: maximum location no.\r
+ s Read memory { 0x0107, 0x01, 0x01, 0x00, 0x01, xH, xL,\r
+ yH, yL, 0x00, 0x00}\r
+ where x: memory type\r
+ 0x01: (256) Dialled numbers\r
+ 0x02: (512) Missed calls\r
+ 0x03: (768) Received calls\r
+ 0x05: (500) telephone phonebook\r
+ 0x06: (160) SIM phonebook\r
+ 0x07: (10/0)\r
+ 0x08: (1/0)\r
+ 0x09: (4) voice mailbox\r
+ 0x0e: (10) speed dials\r
+ 0x10: (5) caller groups\r
+ y: location\r
+ r Read memory error { 0x0108, 0x00, 0x01,\r
+ code,0x00, 0x00, z, error}\r
+ where code==0x0f\r
+ error: 0x34 - phonebook location not found\r
+ 0x3b - speed dial not assigned\r
+ r Read memory OK { 0x0108, 0x00, 0x01,\r
+ code,0x00, 0x00, z, xH, xL, yH, yL, 0x00, 0x00, 0x00, no.of blocks, { block } * }\r
+ where code: != 0x0f\r
+ y: location\r
+ z: generic block size\r
+ block: {id, 0, 0, blocksize, block no.,\r
+ {contents}, 0x00}\r
+ id: 0x04 pointer to another memory location { 0xff?, yH, yL, xL,0x00[3] }\r
+ 0x07 name {len, (unicode)},\r
+ 0x08 email\r
+ 0x09 postal\r
+ 0x0a note {len, (unicode)}\r
+ 0x0b number {type, 0x00[3], len, (unicode)}\r
+ 0x0c ringtone {ringtone no., 0, 0}\r
+ 0x13 date for a called list (DC, RC, etc.)\r
+ 0x1b caller group graphic {width, height, 0, 0 {bitmap}}\r
+ 0x1c caller group graphic on? {(1: yes, 0: no), 0, 0}\r
+ 0x1e caller group number {number, 0, 0}\r
+ type: 0x0a: General,\r
+ 0x03: Mobile (office ?),\r
+ 0x06: Work,\r
+ 0x04: Fax,\r
+ 0x02: Home (mobile ?)\r
+ s Set mem location { 0x010b, 0x00, 0x01, 0x01, 0x00, 0x00, z,\r
+ xH, xL, yH, yL, 0x00, 0x00, 0x00,\r
+ no.of blocks, { block }[no.of blocks] }\r
+ r Set mem location { 0x010c, 0?, 1?, code, 0?, 0?, z?, 0?, 0?,\r
+ yH, yL, xL }\r
+ where code:\r
+ 0x3d - wrong entry type\r
+ 0x3e - too much entries\r
s Delete mem location { 0x010f, 0x00, 0x01, 0x04, 0x00, 0x00, 0x0c, 0x01, 0xff, xH, xL,
yH, yL, 0x00, 0x00}
where x: location
where divtype, calltype: see above
s Get call diverts { 0x0001, 0x05, 0x00, divtype, calltype, 0x00 }
where divtype, calltype: see above
-0x0a: Network status
- s get used network { 0x0070 }
- r get used network { 0x0071, available,?,?,length,netstatus,netsel,cellIDH,
- cellIDL,lacH,lacL,MCC+MNC[3],{Opstr}, 4?,
- len, xlen(78), ylen(21), 0, {bitmap} }
- where {Opstr}: namelen, {operator name(unicode)}
- len: {xlen, ylen, 0, {bitmap} + 2
- {bitmap}: bitmaplen, 0, 0, {OTA bitmap}
- available: 0x02 if the logo following is valid,
- 0x01 for no operator logo following
- s get network status { 0x0081 }
- r get network status { 0x0082, network%, 0x14? }
- s set operator logo { 0x01a3 0x01, oplogo?, MCC+MNC[3], 0?,4?,len,
- xlen(78),ylen(21), 0 (frames?),
- {bitmap}*?, 0x00(padding) }
- where len, {bitmap}: see 0x0a/0x0071
- r set operator logo OK { 0x01a4 }
+0x0a: Network status\r
+ s get used network { 0x0070 }\r
+ r get used network { 0x0071, available,?,?,length,netstatus,netsel,cellIDH,\r
+ cellIDL,lacH,lacL,MCC+MNC[3],{Opstr}, 4?,\r
+ len, xlen(78), ylen(21), 0, {bitmap} }\r
+ where {Opstr}: namelen, {operator name(unicode)}\r
+ len: {xlen, ylen, 0, {bitmap} + 2\r
+ {bitmap}: bitmaplen, 0, 0, {OTA bitmap}\r
+ available: 0x02 if the logo following is valid,\r
+ 0x01 for no operator logo following\r
+ s get network status { 0x0081 }\r
+ r get network status { 0x0082, network%, 0x14? }\r
+ s set operator logo { 0x01a3 0x01, oplogo?, MCC+MNC[3], 0?,4?,len,\r
+ xlen(78),ylen(21), 0 (frames?),\r
+ {bitmap}*?, 0x00(padding) }\r
+ where len, {bitmap}: see 0x0a/0x0071\r
+ r set operator logo OK { 0x01a4 }\r
s clear operator logo { 0x00af, x}
where x==0 to 4
r clear operator logo { 0x00bf}
-0x13: Calendar notes
- s Add meeting note { 0x0001, body like in subtype 0x001a...}
- r Add meeting note { 0x0002, location (2 bytes), status (2 bytes)}
- s Add call note { 0x0003, body like in subtype 0x001a...}
- r Add call note { 0x0004, location (2 bytes), status (2 bytes)}
+0x13: Calendar notes\r
+ s Add meeting note { 0x0001, body like in subtype 0x001a...}\r
+ r Add meeting note { 0x0002, location (2 bytes), status (2 bytes)}\r
+ s Add call note { 0x0003, body like in subtype 0x001a...}\r
+ r Add call note { 0x0004, location (2 bytes), status (2 bytes)}\r
s Add birthday note { 0x0005, location (2 bytes), entry type, 0x00, year of birth(2 bytes),
Month, Day, 0x00, 0x00, alarm (4 bytes), alarm type, length, text (Unicode)}
- r Add birthday note { 0x0006, location (2 bytes), status (2 bytes)}
- s Add reminder note { 0x0007, body like in subtype 0x001a...}
- r Add reminder note { 0x0008, location (2 bytes), status (2 bytes)}
- s Delete calendar note { 0x000b, location (2 bytes) }
- r Delete calendar note { 0x000c, location (2 bytes), ?, ?, ?, ? }
- s Get calendar note { 0x0019, location (2 bytes) }
- r Calendar note recvd { 0x001a, location (2 bytes), entry type, 0x00, year (2 bytes), Month, Day, block}
- where: entry type - 0x01 - Meeting, 0x02 - Call, 0x04 - Birthday, 0x08 - Reminder
- block: for Meeting:{hour,minute,alarm (two bytes),recurrance (two bytes),len,0x00,string(unicode)}
- where alarm=Number of minutes before the time of the meeting
- that the alarm should be triggered:
- For meetings with "No alarm"=0xFFFF (-1).
- For "On time"=0x0000
- half an hour=0x001E, and so on.
- Recurrance=in hours, between future occurances of this meeting.
- If there is no repeat, this value is 0x0000. The special value 0xffff
- means 1 Year!
- for Call:{Hour,Minute,Alarm (as above),Recurrance (as above),namelen,numberlen,
- name(unicode),number(unicode)}
- for Reminder:{Recurrance (as above),len,0x00,string(unicode)}
- for Birthday:{byte1,byte2,alarm(4 bytes),yearofbirth,alarmtype,len,string(unicode)}
- byte1 and byte2 may vary (???). Usually are 0x00 both (but not always)
- In Birthday, the Year in the common part, usually contains a strange year.
- So, don't consider it as Year of note, neither year of BirthDay (for Year of
- Birthday use the value described below).
- where alarm=32-bit integer that is the number of seconds between the desired
- alarm time and 11:59:58pm on the birthday.For "No Alarm", the value is
- 0x0000FFFF (65535).
- YearOfBirth=used instead of the one in the common part of the entry (see above)
- but only when reading birthday entries. For storing entries, this field does
- not exist.
- AlarmType: 0x00 - Tone, 0x01 - Silent
-? s??? { 0x0021 }
-? r??? { 0x0022, 0x5A, 0x00 }
-? s??? { 0x0025 }
-? r??? { 0x0026, 0x04, 0x00 }
-? s { 0x0029 }
-? r { 0x002A, 0x04, 0x00 }
- s Get first free pos { 0x0031 }
- r Get first free pos { 0x0032, location (2bytes) }
- s Get notes info { 0x003a, 0xFF, 0xFE}
- r Get notes info { 0x003b, how many notes used (2 bytes), 0x01, 0x07, { two bytes with location for each note} *}
-? s Get calendar note?? { 0x003E, location (2 bytes) }
-? r Get calendar note?? { 0x003F, location (2bytes), ... }
-0x14:
- s Get Picture Image { 0x0007, location, number[2 bytes], 0x00, 0x64 }
- r Get Picture Image { 0x0008, 0x07, location, number[2 bytes], 0x07, ??[38],
- width, height, lenH, lenL, {bitmap}, 0x00, 0x00, text len, text(coded like in SMS)...}
+ r Add birthday note { 0x0006, location (2 bytes), status (2 bytes)}\r
+ s Add reminder note { 0x0007, body like in subtype 0x001a...}\r
+ r Add reminder note { 0x0008, location (2 bytes), status (2 bytes)}\r
+ s Delete calendar note { 0x000b, location (2 bytes) }\r
+ r Delete calendar note { 0x000c, location (2 bytes), ?, ?, ?, ? }\r
+ s Get calendar note { 0x0019, location (2 bytes) }\r
+ r Calendar note recvd { 0x001a, location (2 bytes), entry type, 0x00, year (2 bytes), Month, Day, block}\r
+ where: entry type - 0x01 - Meeting, 0x02 - Call, 0x04 - Birthday, 0x08 - Reminder\r
+ block: for Meeting:{hour,minute,alarm (two bytes),recurrance (two bytes),len,0x00,string(unicode)}\r
+ where alarm=Number of minutes before the time of the meeting\r
+ that the alarm should be triggered:\r
+ For meetings with "No alarm"=0xFFFF (-1).\r
+ For "On time"=0x0000\r
+ half an hour=0x001E, and so on.\r
+ Recurrance=in hours, between future occurances of this meeting.\r
+ If there is no repeat, this value is 0x0000. The special value 0xffff \r
+ means 1 Year!\r
+ for Call:{Hour,Minute,Alarm (as above),Recurrance (as above),namelen,numberlen,\r
+ name(unicode),number(unicode)}\r
+ for Reminder:{Recurrance (as above),len,0x00,string(unicode)}\r
+ for Birthday:{byte1,byte2,alarm(4 bytes),yearofbirth,alarmtype,len,string(unicode)}\r
+ byte1 and byte2 may vary (???). Usually are 0x00 both (but not always)\r
+ In Birthday, the Year in the common part, usually contains a strange year.\r
+ So, don't consider it as Year of note, neither year of BirthDay (for Year of\r
+ Birthday use the value described below).\r
+ where alarm=32-bit integer that is the number of seconds between the desired\r
+ alarm time and 11:59:58pm on the birthday.For "No Alarm", the value is\r
+ 0x0000FFFF (65535).\r
+ YearOfBirth=used instead of the one in the common part of the entry (see above)\r
+ but only when reading birthday entries. For storing entries, this field does\r
+ not exist.\r
+ AlarmType: 0x00 - Tone, 0x01 - Silent\r
+? s??? { 0x0021 }\r
+? r??? { 0x0022, 0x5A, 0x00 }\r
+? s??? { 0x0025 }\r
+? r??? { 0x0026, 0x04, 0x00 }\r
+? s { 0x0029 }\r
+? r { 0x002A, 0x04, 0x00 }\r
+ s Get first free pos { 0x0031 }\r
+ r Get first free pos { 0x0032, location (2bytes) }\r
+ s Get notes info { 0x003a, 0xFF, 0xFE}\r
+ r Get notes info { 0x003b, how many notes used (2 bytes), 0x01, 0x07, { two bytes with location for each note} *}\r
+? s Get calendar note?? { 0x003E, location (2 bytes) }\r
+? r Get calendar note?? { 0x003F, location (2bytes), ... }\r
+0x14:\r
+ s Get Picture Image { 0x0007, location, number[2 bytes], 0x00, 0x64 }\r
+ r Get Picture Image { 0x0008, 0x07, location, number[2 bytes], 0x07, ??[38],\r
+ width, height, lenH, lenL, {bitmap}, 0x00, 0x00, text len, text(coded like in SMS)...}\r
r Get SMS failed { 0x0009, 0x02 },
s Get SMS status { 0x0036, 0x64 }
- r Get SMS Status { 0x0037, 0x05/0x03, 0x01, 0x00, 0x00,
- a (2 octets), b (2 octets), c (2 octets),
- d (2 octets), e (2 octets), 0x00
- where:
- a - according to P.Kot:
- Number of locations in "fixed" memory. These are all
- Templates entries in my Nokias 6210 (NPE-3 (c) NMP V05.36
- 14-11-01, NPE-3 (c) NMP V05.27 01-08-01).
- I can't remove any of Templates entries in my phone.
- Marcin Wi¥cek: Rather not ! I don't agree.
- I have 0x00, 0x0f and 10 templates and 3 SMS
- and 10 Picture Images.
- b - Number of used messages in phone memory. These
- are messages manually moved from the other folders.
- Picture messages are saved here.
- c - Number of unread messages in phone memory. Probably
- only smart messsages.
- d - Number of used messages in SIM memory. These are
- either received messages or saved into Outbox/Inbox.
- Note that you *can't* save message into this memory
- using 'Move' option. Picture messages are not here.
- e - Number of unread messages in SIM memory
-
- s Set Picture Image { 0x0050, 0x07, location, number[2 bytes], 0x07, ??[38],
- width, height, lenH, lenL, {bitmap}, 0x00, 0x00, text len, text(coded like in SMS)...}
- std. size: 72x28
- r Set Picture Image { 0x0051, location, number[2 bytes], 0x07 }
- s Set SMS name { 0x0083,folder,location(2bytes),name(Unicode),0x00 , 0x00}
- r Set SMS name { 0x0084,folder,0x00, 0x00, name (Unicode),0x00,0x00}
- s List Picture Images { 0x0096, location, 0x0f, 0x07 }
- where location:
- LM tries with 0x09, 0x11, 0x19, 0x21, 0x29, 0x31, 0x39, 0x41, 0x49
- Returned value with 0x21
- r List Picture Images { 0x0097, number of pictures[2 bytes], number1[2 bytes], number2[2 bytes], ..., }
+ r Get SMS Status { 0x0037, 0x05/0x03, 0x01, 0x00, 0x00,\r
+ a (2 octets), b (2 octets), c (2 octets),\r
+ d (2 octets), e (2 octets), 0x00\r
+ where:\r
+ a - according to P.Kot:\r
+ Number of locations in "fixed" memory. These are all\r
+ Templates entries in my Nokias 6210 (NPE-3 (c) NMP V05.36\r
+ 14-11-01, NPE-3 (c) NMP V05.27 01-08-01).\r
+ I can't remove any of Templates entries in my phone.\r
+ Marcin Wi¥cek: Rather not ! I don't agree.\r
+ I have 0x00, 0x0f and 10 templates and 3 SMS\r
+ and 10 Picture Images.\r
+ b - Number of used messages in phone memory. These\r
+ are messages manually moved from the other folders.\r
+ Picture messages are saved here.\r
+ c - Number of unread messages in phone memory. Probably\r
+ only smart messsages.\r
+ d - Number of used messages in SIM memory. These are\r
+ either received messages or saved into Outbox/Inbox.\r
+ Note that you *can't* save message into this memory\r
+ using 'Move' option. Picture messages are not here.\r
+ e - Number of unread messages in SIM memory\r
+\r
+ s Set Picture Image { 0x0050, 0x07, location, number[2 bytes], 0x07, ??[38], \r
+ width, height, lenH, lenL, {bitmap}, 0x00, 0x00, text len, text(coded like in SMS)...}\r
+ std. size: 72x28\r
+ r Set Picture Image { 0x0051, location, number[2 bytes], 0x07 }\r
+ s Set SMS name { 0x0083,folder,location(2bytes),name(Unicode),0x00 , 0x00}\r
+ r Set SMS name { 0x0084,folder,0x00, 0x00, name (Unicode),0x00,0x00}\r
+ s List Picture Images { 0x0096, location, 0x0f, 0x07 }\r
+ where location:\r
+ LM tries with 0x09, 0x11, 0x19, 0x21, 0x29, 0x31, 0x39, 0x41, 0x49\r
+ Returned value with 0x21\r
+ r List Picture Images { 0x0097, number of pictures[2 bytes], number1[2 bytes], number2[2 bytes], ..., }\r
s Write SMS to folder { 0x0104, status, folder ID, location(2 bytes), 0x02, 0x01, SMS stuff ... }
r Write SMS to folder { 0x0105, folder ID, location(2 bytes), 0x00 }
r Write SMS to folder { 0x0106, 0x02 (write failed errorcode ?) }
- s Get SMS from folder { 0x0107, folderID, location(2 bytes), 0x01, 0x65, 0x01}
- where: folderID - see 0x14/0x017B
+ s Get SMS from folder { 0x0107, folderID, location(2 bytes), 0x01, 0x65, 0x01}\r
+ where: folderID - see 0x14/0x017B\r
r Get SMS from folder { 0x0108, status, folderID, 0x00, location, type, sender number,...}
where: status=0x01 - reveived/read
where: type=0x00 - received SMS
0x01 - delivery report
0x02 - stored SMS
- 0x07 - picture message
+ 0x07 - picture message\r
s Delete SMS message { 0x010a, folderID, location(2 bytes), 0x01 }
r Delete SMS { 0x010b }
- s Get folder status { 0x016b, folderID, 0x0F, 0x01}
- where: folderID - see 0x14/0x017B
- r Get folder status { 0x016c, number of entries (2 bytes), entry1number (2 bytes), entry2number(2 bytes), ....}
- s Get folder names { 0x017A, 0x00, 0x00}
- r Get folder names { 0x017B, number of strings, folderID, name1, 0x00, folderID, name2, 0x00, name3, 0x00,...}
- where: folderID=0x08 - Inbox
- 0x10 - Outbox
- 0x18 - Archive
+ s Get folder status { 0x016b, folderID, 0x0F, 0x01}\r
+ where: folderID - see 0x14/0x017B\r
+ r Get folder status { 0x016c, number of entries (2 bytes), entry1number (2 bytes), entry2number(2 bytes), ....}\r
+ s Get folder names { 0x017A, 0x00, 0x00}\r
+ r Get folder names { 0x017B, number of strings, folderID, name1, 0x00, folderID, name2, 0x00, name3, 0x00,...}\r
+ where: folderID=0x08 - Inbox\r
+ 0x10 - Outbox\r
+ 0x18 - Archive\r
0x20 - Templates
0x29 - first "My folders"
0x31 - second "My folders"
0x39 - third -"-
- and so on
-0x17:
- s Get Battery info { 0x0002 }
- r Get Battery info { 0x0003, 0x0b, batt%, 0x14?, 0x01? }
-0x19: Phone clock & alarm
-
- These frames are like the same frames subtypes in 0x11 in 6110
-
- s set date and time { 0x0060, 1,1,7,yearh,yearl,month,mday,hour,min,0x00 }
- r date and time set { 0x0061 }
- s get date and time { 0x0062 }
- r date and time recvd { 0x0063,date_set?,time_set?,?,?,yearh,yearl,month,mday,hour,min,second }
- where: date_set & time_set==0x01 - set
- 0x00 - not set, ?,?,yearh,yearl,month,mday,hour,min,second
- not available in frame
- s set alarm { 0x006b, 1,32,3,0x02(on-off),hour,min,0x00 }
- r alarm set { 0x006c }
- s get alarm { 0x006d }
- r alarm received { 0x006e,?,?,?,?,alrm(==2:on),hour,min }
-
- These are new (?)
-
-? s ?? { 0x0083, id }
-? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x00 }
-? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x01 }
-? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x01, 0x00 }
- where: id=0x27,0x2a,0x32,0x28,0x40
-0x1b:
- s Get IMEI { 0x0001 }
- r Get IMEI { 0x0002, {IMEI(ASCII)}, 0x00 }
- s get HW&SW version { 0x0003, 0x01, 0x32 }
- r get HW&SW version { 0x0004, "V " "firmware\n" "firmware date\n"
- "model\n" "(c) NMP." 0x00 0xff[14] }
-0x1f:
- s ??? { 0x0010, 0x02, 0x00, 0xff, 0xff }
- r ??? { 0x0011, length, 0x00, {block}[length] }
- where block: { unicode letter[2], 0x0000,
- 0x00, 0x55, ??, ?? }
- s Set ringtone { 0x011f, 0x00, location, 0x00, name(Unicode),
- ringtone(format the same to 0x40/0x019e and 0x40/0x01a0) }
- where: location: 0x87 to 0x8b on N6210
- 0x74 to ... on N7110
- s Get ringtone { 0x0122, 0x00, location}
- r Get ringtone { 0x0123, 0x00, location, name(Unicode), 0x00,...,0x00, 0x02,0xFC,0x09(ringtone contenst)}
- r Get ringtone error { 0x0124, ...}
-0x39:
- s get profile feature { 0x0101, 0x01, 0x01, 0x01, number1, number2}
- where number1: from 0x00 to 0x07 (for each profile ?)
- number2: 0x00 - 0x09, 0x0A, 0x16 - 0x19, 0x1a - 0x1f, 0x20 - 0x29, 0x2a - 0x2c, 0xff
- where 0x09: keypad tones 0x02: incoming call alert 0x03: ringtone number
- 0x04: ringing volume
- 0x05: message alert tone 0x06: vibra 0x07: warning tones 0x08: caller groups alert for 0x09: automatic answer
- 0xff: name
- r get profile feature { 0x0102, 0x01, 0x02, number2, block...}
- for number2==0xff: (Profile Name)
- block: 0x01, length, name(Unicode), 0x00, 0x00
- for number2==0x00: (Keypad Tones)
- block: 0x01, 0x01, 0x01, Type, 0x01
- where: Type : 0x00 = Off
- 0x01 to 0x03 = Level1 .. Level3
- for number2==0x02: (Incoming Call Alert)
- block: 0x01, 0x01, 0x01, Type, 0x01
- where: Type : 0x00 = Ringing
- 0x01 = Ascending
- 0x02 = Ring Once
- 0x03 = Beep Once
- 0x05 = Off
- for number2==0x03: (Ringtone Number)
- block: 0x01, 0x01, 0x01, Number, 0x01
- where: Number : 0x40 to 0x62 - gives number of factory ringtone. The number of menu is
- obtained by doing (Number - 0x3f);
- where: Number : 0x89 to 0x8d - gives number of uploaded ringtone. The number of menu is
- obtained by doing (Number - 0x65),while the uploaded ringtone number is
- obtained by doing (Number - 0x88).
- for number2==0x04: (Ringing volume)
- block: 0x01, 0x??, 0x??, Volume, 0x01
- where: Volume : 0 = Level1 .. to 4 = Level5
- for number2==0x05: (Message Alert Tone)
- block: 0x01, 0x01, 0x??, Type, 0x01
- where: Type : 0x00 = Off
- 0x01 = Standard
- 0x02 = Special
- 0x03 = Beep Once
- 0x04 = Ascending
- for number2==0x06: (Vibration)
- block: 0x01, 0x??, 0x??, Switch, 0x01
- where: Switch : 0 = Off, 1 = On
- for number2==0x07: (Warning Tones)
- block: 0x01, 0x??, 0x??, Switch, 0x01
- where: Switch : 0 = Off, 1 = On
- for number2==0x08: (Caller groups Alert for)
- block: 0x01, 0x??, 0x??, Callers, 0x01
- where: Callers : 0xff = All calls alert (Read below *)
- 0x01 = Family
- 0x02 = VIP
- 0x04 = Friends
- 0x08 = Colleagues
- 0x10 = Others
- All logical OR among groups are valid, so if you select from one phone's profile
- alert for Friends and Collegues, a 0x0c will return (because 0x04 OR 0x08 = 0x0c).
- (*) If Callers==0xff, means "Alert for All calls". Then, in this case, you don't
- need to read other groups selection.
- for number2==0x09: (Automatic answer)
- block: 0x01, 0x??, 0x??, Switch, 0x01
- where: Switch : 0 = Off, 1 = On
- N.B. This feature is valid for Handsfree and Headset profiles only!
- s ??? { 0x0101, 0x04, 0x01, 0x01, 0xff, 0x03 }
- r ??? { 0x0102, 0x01, 0x02, 0x03, 0x01, 0x01, 0x01, 0x85/0x087 }
-
- s ? { 0x0105}
- r ? { 0x0106, 0x01, 0x04}
-0x3f: WAP
- s Enable WAP frames { 0x0000}
- r Enable WAP frames { 0x0002, 0x01}
-
- s ?? { 0x0003}
- r ?? { 0x0004}
-
- s Get WAP bookmark { 0x0006, 0x00, location}
- where location: 0 - 14
- r Get WAP bookmark { 0x0007, 0x00, name_len, name(unicode),
- url_len, url(unicode), 0x01,0x80,0x00[7]}
- r Get WAP bookmark err { 0x0008, error }
- where error:
- 0x00(?)invalid position
- 0x01 user inside "Bookmarks" menu. Must leave it
- 0x02 invalid/too high/empty location
-
- s Set WAP bookmark { 0x0009, 0xff, 0xff, name_len, name(unicode),
- url_len, url(unicode), 0x01,0x80,0x00[7] }
- Note: bookmark is added to the first free location.
- r Set WAP bookmark OK {+0x01, 0x36, 0x0a, block }
- where block:
- 0x0a, location_of_just_written_bookmark(?),
- 0x00, next_free_location(?)
- r Set WAP bookmark err {+0x01, 0x36, 0x0b, error }
- where error:
- 0x04 - memory is full
- 0x01 - we are in the bookmark menu
- 0x00 - unknown reason for now ;(
+ and so on\r
+0x17:\r
+ s Get Battery info { 0x0002 }\r
+ r Get Battery info { 0x0003, 0x0b, batt%, 0x14?, 0x01? }\r
+0x19: Phone clock & alarm\r
+\r
+ These frames are like the same frames subtypes in 0x11 in 6110\r
+\r
+ s set date and time { 0x0060, 1,1,7,yearh,yearl,month,mday,hour,min,0x00 }\r
+ r date and time set { 0x0061 }\r
+ s get date and time { 0x0062 }\r
+ r date and time recvd { 0x0063,date_set?,time_set?,?,?,yearh,yearl,month,mday,hour,min,second }\r
+ where: date_set & time_set==0x01 - set\r
+ 0x00 - not set, ?,?,yearh,yearl,month,mday,hour,min,second\r
+ not available in frame\r
+ s set alarm { 0x006b, 1,32,3,0x02(on-off),hour,min,0x00 }\r
+ r alarm set { 0x006c }\r
+ s get alarm { 0x006d }\r
+ r alarm received { 0x006e,?,?,?,?,alrm(==2:on),hour,min }\r
+\r
+ These are new (?)\r
+\r
+? s ?? { 0x0083, id }\r
+? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x00 }\r
+? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x00, 0x01 }\r
+? r ?? { 0x0084, 0x01, 0x40, 0x03, id, 0x01, 0x00 }\r
+ where: id=0x27,0x2a,0x32,0x28,0x40\r
+0x1b:\r
+ s Get IMEI { 0x0001 }\r
+ r Get IMEI { 0x0002, {IMEI(ASCII)}, 0x00 }\r
+ s get HW&SW version { 0x0003, 0x01, 0x32 }\r
+ r get HW&SW version { 0x0004, "V " "firmware\n" "firmware date\n"\r
+ "model\n" "(c) NMP." 0x00 0xff[14] }\r
+0x1f:\r
+ s ??? { 0x0010, 0x02, 0x00, 0xff, 0xff }\r
+ r ??? { 0x0011, length, 0x00, {block}[length] }\r
+ where block: { unicode letter[2], 0x0000,\r
+ 0x00, 0x55, ??, ?? }\r
+ s Set ringtone { 0x011f, 0x00, location, 0x00, name(Unicode),\r
+ ringtone(format the same to 0x40/0x019e and 0x40/0x01a0) }\r
+ where: location: 0x87 to 0x8b on N6210\r
+ 0x74 to ... on N7110\r
+ s Get ringtone { 0x0122, 0x00, location}\r
+ r Get ringtone { 0x0123, 0x00, location, name(Unicode), 0x00,...,0x00, 0x02,0xFC,0x09(ringtone contenst)}\r
+ r Get ringtone error { 0x0124, ...}\r
+0x39:\r
+ s get profile feature { 0x0101, 0x01, 0x01, 0x01, number1, number2}\r
+ where number1: from 0x00 to 0x07 (for each profile ?)\r
+ number2: 0x00 - 0x09, 0x0A, 0x16 - 0x19, 0x1a - 0x1f, 0x20 - 0x29, 0x2a - 0x2c, 0xff\r
+ where 0x09: keypad tones\r 0x02: incoming call alert\r 0x03: ringtone number\r
+ 0x04: ringing volume\r
+ 0x05: message alert tone\r 0x06: vibra\r 0x07: warning tones\r 0x08: caller groups alert for\r 0x09: automatic answer
+ 0xff: name\r
+ r get profile feature { 0x0102, 0x01, 0x02, number2, block...}\r
+ for number2==0xff: (Profile Name)\r
+ block: 0x01, length, name(Unicode), 0x00, 0x00\r
+ for number2==0x00: (Keypad Tones)\r
+ block: 0x01, 0x01, 0x01, Type, 0x01\r
+ where: Type : 0x00 = Off\r
+ 0x01 to 0x03 = Level1 .. Level3\r
+ for number2==0x02: (Incoming Call Alert)\r
+ block: 0x01, 0x01, 0x01, Type, 0x01\r
+ where: Type : 0x00 = Ringing\r
+ 0x01 = Ascending\r
+ 0x02 = Ring Once\r
+ 0x03 = Beep Once\r
+ 0x05 = Off\r
+ for number2==0x03: (Ringtone Number)\r
+ block: 0x01, 0x01, 0x01, Number, 0x01\r
+ where: Number : 0x40 to 0x62 - gives number of factory ringtone. The number of menu is\r
+ obtained by doing (Number - 0x3f);\r
+ where: Number : 0x89 to 0x8d - gives number of uploaded ringtone. The number of menu is\r
+ obtained by doing (Number - 0x65),while the uploaded ringtone number is\r
+ obtained by doing (Number - 0x88).\r
+ for number2==0x04: (Ringing volume)\r
+ block: 0x01, 0x??, 0x??, Volume, 0x01\r
+ where: Volume : 0 = Level1 .. to 4 = Level5\r
+ for number2==0x05: (Message Alert Tone)\r
+ block: 0x01, 0x01, 0x??, Type, 0x01\r
+ where: Type : 0x00 = Off\r
+ 0x01 = Standard\r
+ 0x02 = Special\r
+ 0x03 = Beep Once\r
+ 0x04 = Ascending\r
+ for number2==0x06: (Vibration)\r
+ block: 0x01, 0x??, 0x??, Switch, 0x01\r
+ where: Switch : 0 = Off, 1 = On\r
+ for number2==0x07: (Warning Tones)\r
+ block: 0x01, 0x??, 0x??, Switch, 0x01\r
+ where: Switch : 0 = Off, 1 = On\r
+ for number2==0x08: (Caller groups Alert for)\r
+ block: 0x01, 0x??, 0x??, Callers, 0x01\r
+ where: Callers : 0xff = All calls alert (Read below *)\r
+ 0x01 = Family\r
+ 0x02 = VIP\r
+ 0x04 = Friends\r
+ 0x08 = Colleagues\r
+ 0x10 = Others\r
+ All logical OR among groups are valid, so if you select from one phone's profile\r
+ alert for Friends and Collegues, a 0x0c will return (because 0x04 OR 0x08 = 0x0c).\r
+ (*) If Callers==0xff, means "Alert for All calls". Then, in this case, you don't\r
+ need to read other groups selection.\r
+ for number2==0x09: (Automatic answer)\r
+ block: 0x01, 0x??, 0x??, Switch, 0x01\r
+ where: Switch : 0 = Off, 1 = On\r
+ N.B. This feature is valid for Handsfree and Headset profiles only!\r
+ s ??? { 0x0101, 0x04, 0x01, 0x01, 0xff, 0x03 }\r
+ r ??? { 0x0102, 0x01, 0x02, 0x03, 0x01, 0x01, 0x01, 0x85/0x087 }\r
+\r
+ s ? { 0x0105}\r
+ r ? { 0x0106, 0x01, 0x04}\r
+0x3f: WAP \r
+ s Enable WAP frames { 0x0000}\r
+ r Enable WAP frames { 0x0002, 0x01}\r
+\r
+ s ?? { 0x0003}\r
+ r ?? { 0x0004}\r
+\r
+ s Get WAP bookmark { 0x0006, 0x00, location}\r
+ where location: 0 - 14\r
+ r Get WAP bookmark { 0x0007, 0x00, name_len, name(unicode),\r
+ url_len, url(unicode), 0x01,0x80,0x00[7]}\r
+ r Get WAP bookmark err { 0x0008, error }\r
+ where error:\r
+ 0x00(?)invalid position\r
+ 0x01 user inside "Bookmarks" menu. Must leave it\r
+ 0x02 invalid/too high/empty location\r
+\r
+ s Set WAP bookmark { 0x0009, 0xff, 0xff, name_len, name(unicode),\r
+ url_len, url(unicode), 0x01,0x80,0x00[7] }\r
+ Note: bookmark is added to the first free location.\r
+ r Set WAP bookmark OK {+0x01, 0x36, 0x0a, block }\r
+ where block:\r
+ 0x0a, location_of_just_written_bookmark(?),\r
+ 0x00, next_free_location(?)\r
+ r Set WAP bookmark err {+0x01, 0x36, 0x0b, error }\r
+ where error:\r
+ 0x04 - memory is full\r
+ 0x01 - we are in the bookmark menu\r
+ 0x00 - unknown reason for now ;(\r
-? s Delete WAP bookmark { 0x000c, 0x00, location }
- where: location = 0-14
-? r Delete WAR bookmark OK{ 0x000d }
-? r Delete WAPbookmark err{ 0x000e, 0x02 }
-
- s ?? { 0x000F}
- r ?? { 0x0010, 0x00}
-
- s Get WAP settings 1 { 0x0015, location}
- where location: 0x00 - 0x05
- r Get WAP settings 1 OK { 0x0016, title length, title (Unicode), URL length, URL(Unicode),con_type, ???[6 bytes],location, ???[5 bytes],security,...}
- where:
- con_type: 0x00 - temporary
- 0x01 - continuous
- location: when use "Get WAP settings 2 frame", must give it
- security: 0x00 = no, 0x01 = yes
- r Get WAP settings 1 err{ 0x0017, error }
- where error:
- 0x01 user inside "Settings" menu. Must leave it
- 0x02 invalid/too high/empty location
- s Get WAP settings 2 { 0x001b, location}
- where location: 0x00 - 0x1d (you get it in "Get WAP settings 1" frame)
- r Get WAP settings 2 OK { 0x001c, 0x01, type, frame...}
- where type : 0x00 - SMS bearer
- frame:
- service_num_len, service_num (Unicode), server_num_len, server_num(Unicode)
- 0x01 - data bearer
- frame:
- auth, call_type, call_speed, ?, IP len, IP (Unicode), dialup len, dialup (Unicode),
- user len, user (Unicode), password len, password (Unicode)
- where auth: 0x00 - normal, 0x01 - secure
- call_type: 0x00 - analogue, 0x01 - ISDN
- call_speed: 0x00 - 9600, 0x01 - 14400
+? s Delete WAP bookmark { 0x000c, 0x00, location }\r
+ where: location = 0-14\r
+? r Delete WAR bookmark OK{ 0x000d }\r
+? r Delete WAPbookmark err{ 0x000e, 0x02 }\r
+\r
+ s ?? { 0x000F}\r
+ r ?? { 0x0010, 0x00}\r
+\r
+ s Get WAP settings 1 { 0x0015, location}\r
+ where location: 0x00 - 0x05\r
+ r Get WAP settings 1 OK { 0x0016, title length, title (Unicode), URL length, URL(Unicode),con_type, ???[6 bytes],location, ???[5 bytes],security,...}\r
+ where:\r
+ con_type: 0x00 - temporary\r
+ 0x01 - continuous\r
+ location: when use "Get WAP settings 2 frame", must give it\r
+ security: 0x00 = no, 0x01 = yes\r
+ r Get WAP settings 1 err{ 0x0017, error }\r
+ where error:\r
+ 0x01 user inside "Settings" menu. Must leave it\r
+ 0x02 invalid/too high/empty location\r\r
+ s Get WAP settings 2 { 0x001b, location}\r
+ where location: 0x00 - 0x1d (you get it in "Get WAP settings 1" frame)\r
+ r Get WAP settings 2 OK { 0x001c, 0x01, type, frame...}\r
+ where type : 0x00 - SMS bearer\r
+ frame:\r
+ service_num_len, service_num (Unicode), server_num_len, server_num(Unicode)\r
+ 0x01 - data bearer\r
+ frame:\r
+ auth, call_type, call_speed, ?, IP len, IP (Unicode), dialup len, dialup (Unicode),\r
+ user len, user (Unicode), password len, password (Unicode)\r
+ where auth: 0x00 - normal, 0x01 - secure\r
+ call_type: 0x00 - analogue, 0x01 - ISDN\r
+ call_speed: 0x00 - 9600, 0x01 - 14400\r
0x02 - USSD bearer
frame: type, service number len/IP len,service num (Unicode)/IP (Unicode),service code len,
service code (Unicode)
where type: 0x01 - service number, 0x00 - IP
- r Get WAP settings 2 err{ 0x001d,error}
- where: error=0x05
-0x40: Security commands
-? s ???(N6150) { 0x08, 0x00 }
-? r ???(N6150) { 0x08 }
- s Enable extended cmds { 0x64, cmd }
- where cmd: 0x00: off
- 0x01: on
- 0x03: reset (doesn't ask for PIN again)
- 0x04: reset (PIN is requested)
- In 5110 makes reset without PIN
- 0x06: CONTACT SERVICE!!! Don't try it!
- s Get IMEI { 0x66 }
- r Get IMEI { 0x66, 0x01, IMEI, 0x00}
- s (ACD Readings)?(N6150 { 0x68 }
- r (ACD Readings)?(N6150 { 0x68, ... }
- s Get Product Profile
- Settings { 0x6a}
- r Get Product Profile
- Settings { 0x6a, 4bytes with Product Profile Settings }
- s Set Product Profile
- Settings { 0x6b, 4bytes with Product Profile Settings }
- r Set Product Profile
- Settings OK ? { 0x6b }
- s Get code { 0x6e, code }
- where code: see 0x08/0x0004 (no allowed code !)
- r Get code { 0x6e, code, allowed, allowed? (sec code (text)) }
- where code: see 0x08/0x0004
- allowed: 0: no
- 1: yes
-? s Reset Permanent
-? Counters (nm->test36) { 0x74, 0x01, 0x01, 0x0e }
-? r Reset Permanent
-? Counters (nm->test36) { 0x74 }
- s Call commands { 0x7c, block }
- where where: command, (values)
- command: 0x01
- values: number(ASCII), 0x00 - makes voice call
- command: 0x02 - answer call
- command: 0x03 - release call
- r Call commands { 0x7c, command }
- s Netmonitor { 0x7e, field }
- where: field: 00: next
- F0: reset
- F1: off
- F2: field test menus
- F3: developer menus
- s Get simlock info { 0x8a, 0x00}
- r Get simlock info { 0x8a, 0x00, 0x01, lockstype, locksclosed, 0x00, 0x00, locksinfo(lock1,4,2,3), counter1,counter2,counter4,counter4,0x00 }
- where: lockstype: bit1,bit2,bit3,bit4 - if set, selected lock is user lock
- locksclosed: bit1,bit2,bit3,bit4 - if set, selected lock is closed
- counter1 - counter4: counters for locks
- s Buzzer pitch { 0x8f, volume, hzLO, hzHI }
- if volume and hz is 0, it's off
- r Buzzer pitch { 0x8f}
- s ACD Readings ? { 0x91, parameter?(0x02,0x03,0x04,0x05,0x07) }
- r ACD Readings ? { 0x91, parameter?, value? }
-? s ???(N6150) { 0x98, 0x00 }
-? r ???(N6150) { 0x98, 0x00, 0x04 }
- s Get bin ringtone { 0x9e, location }
- where: location=0,1,etc.
- r Get bin ringtone { 0x9e, location, error, contents... }
- where location=0,1,etc.
- error=0x0a, ringtone NOT available
- 0x00, OK
- s Set bin ringtone { 0xa0, location, 0x00, contenst... }
- where: location=0,1,etc.
- r Set bin ringtone { 0xa0, location, error }
- where location=0,1,etc.
- error=0x0a, ringtone NOT set
- 0x00, ringtone set OK
-? r Get MSid { 0xb5, 0x01, 0x2f, msid, 0x25 }
- s Get info about phone { 0xc8, 0x01 }
- r Get info about phone { 0xc8, 0x01, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
- s Get MCU SW Checksum { 0xc8, 0x02 }
- r Get MCU SW Checksum { 0xc8, 0x02, 0x00, checksum (4 bytes),0x00 }
- s DPS External SW { 0xc7, 0x03 }
- r DSP External SW { 0xc7, 0x03, 0x00, string,0x00 }
- s Get HW { 0xc8, 0x05 }
- r Get HW { 0xc8, 0x05, 0x00, HW version (4 bytes), 0x00 }
- s Get "Made" Date { 0xc8, 0x05 }
- r Get "Made" Date { 0xc8, 0x05, 0x00, date(4 bytes), 0x00 }
- s Get DSP Internal SW { 0xc8, 0x09 }
- r Get DSP Internal SW { 0xc8, 0x09, 0x00, version (1 bytes), 0x00 }
- s Get PCI version { 0xc8, 0x0b }
- r Get PCI version { 0xc8, 0x0b, 0x00, version, 0x00 }
- s Get system ASIC { 0xc8, 0x0c }
- r Get system ASIC { 0xc8, 0x0c, 0x00, string, 0x00 }
- s Get COBBA { 0xc8, 0x0d }
- r Get COBBA { 0xc8, 0x0d, 0x00, string, 0x00 }
- s Get PLUSSA { 0xc8, 0x0e }
- r Get PLUSSA { 0xc8, 0x0e, available, 0x00 }
- where available: 0x01: not available
- s Get CCONT { 0xc8, 0x0f }
- r Get CCONT { 0xc8, 0x0f, available, 0x00 }
- where available: 0x01: not available
- s Get PPM version { 0xc8, 0x10 }
- r Get PPM version { 0xc8, 0x10, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }
- s Get PPM info { 0xc8, 0x12 }
- r Get PPM info { 0xc8, 0x12, 0x00, PPM version ("B", "C", etc.), 0x00 }
- s Set HW version { 0xc9, 0x05, version, 0x00 }
- s Get Product Code { 0xca, 0x01 }
- r Get Product Code { 0xca, 0x01, 0x00, number, 0x00 }
- s Get Order Number { 0xca, 0x02 }
- r Get Order Number { 0xca, 0x02, 0x00, string, 0x00 }
- s Get Prod.Ser.Number { 0xca, 0x03 }
- r Get Prod.Ser.Number { 0xca, 0x03, 0x00, number, 0x00 }
- s Get Basic Prod.Code { 0xca, 0x04 }
- r Get Basic Prod.Code { 0xca, 0x04, 0x00, number, 0x00 }
- s Set Product Code { 0xcb, 0x01, product code, 0x00 }
- s Set Order Number { 0xcb, 0x02, number, 0x00 }
- s Set Prod.Ser.Number { 0xcb, 0x03, number, 0x00 }
- s Get (original ?)IMEI { 0xcc, 0x01 }
- r Get (original ?)IMEI { 0xcc, 0x01, IMEI, 0x00 }
- s Get Manufacture Month { 0xcc, 0x02 }
- r Get Manufacture Month { 0xcc, 0x02, 0x00, string, 0x00 }
- s Get Purchare date { 0xcc, 0x04 }
- r Get Purchare date { 0xcc, 0x04, 0x00, string, 0x00 }
- s Set "Made" date { 0xcd, 0x02, string, 0x00 }
- s Make "all" phone tests{ 0xce,0x1d,0xfe,0x23,0x00,0x00}
- s Make one phone test { 0xce,0x1d,num1,num2,num3,num4}
- Where num1-num4: 0x02,0x00,0x00,0x00;
- 0x04,0x00,0x00,0x00;
- 0x08,0x00,0x00,0x00;
- 0x10,0x00,0x00,0x00;
- 0x20,0x00,0x00,0x00;
- 0x40,0x00,0x00,0x00;
- 0x80,0x00,0x00,0x00;
- 0x00,0x01,0x00,0x00;
- 0x00,0x02,0x00,0x00;
- 0x00,0x04,0x00,0x00; - "Power off"
- No test for "Security data"
- 0x00,0x10,0x00,0x00;
- 0x00,0x20,0x00,0x00;
- 0x00,0x40,0x00,0x00;
- 0x00,0x80,0x00,0x00;
- 0x00,0x00,0x01,0x00;
- ....
- 0x00,0x00,0x10,0x00;
- s Result of phone tests { 0xcf }
- r Result of phone tests { 0xcf, number of tests, results of next tests }
-? s ??? { 0xd1 }
-? r ???(N5110) { 0xd1, 0x00, 0x1d, 0x00, 0x01, 0x08, 0x00 }
- s LCD Test { 0xd3, value }
- where value: 0x03, 0x02 - 1'st test
- 0x03, 0x01 - 2'nd test
- 0x02, 0x03 - clears screen
- s ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01}
- r ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01, ?}
- r Function of { 0xff, 0x8c }
- 0x40 msgtype not
- supported ?
-0x78:
- s Status confirm { 0x0201, 0x03 }
- r Incoming call seq1 { 0x0102 0x0e 0x03 }
- r Incoming call seq2 { 0x0102 0x7e 0x01 }
-0x79:
- s CarKit enable { 0x0201 0x01 0x62 0x00 }
- r CarKit enabled { 0x0201 0x02 0x06 0x00 "V " {version} "\nHFU"
- 0x00 }
-0x7a: settings
- r Set setting { 0x01eb, number, 0x00 }
- s Set setting { 0x01ec, number, contents }
- where for number:
- 0x02 (startup text) : 0x00, text (Unicode)
- 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,
- 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,
- 0xc0, 0x04, 0x03, 0x00, {bitmap} }
- where width, height, {bitmap}: see 0x7a/0x01ed 0x15
- s Get setting { 0x01ee, number}
- where number: 0x01 - 0x1e
- 0x02: startup text
- 0x15: startup logo
- 0x1c: security code
- r Get setting { 0x01ed,number, 0x00, contents}
- where for number:
- 0x02 (startup text) : 0x00, text (Unicode)
- 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,
- 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,
- 0xc0, 0x04, 0x03, 0x00, {bitmap} }
- where height: 60 (0x3c) or 65
- width: 96 (0x60)
- {bitmap}: like other bitmaps but pixels
- placed vertically.
- 0x1c (security code): {code(ascii)}, 0x00
-0x7f: Acknowledge(FBUS/IRDA){+type, seq }
- Acknowledge(MBUS)...
-0xd0:
- s Power on message seq1 {+04 }
- r Power on message seq1 {+05 }
-0xd1:
- s Get HW&SW version { 0x0003, 0x00 }
-0xd2:
- r Get HW&SW version { 0x0003 "V " "firmware\n" "firmware date\n"
- "model\n" "(c) NMP." }
-0xf4: Power on message seq 2
+ r Get WAP settings 2 err{ 0x001d,error}\r
+ where: error=0x05 \r
+0x40: Security commands\r
+? s ???(N6150) { 0x08, 0x00 }\r
+? r ???(N6150) { 0x08 }\r
+ s Enable extended cmds { 0x64, cmd }\r
+ where cmd: 0x00: off\r
+ 0x01: on\r
+ 0x03: reset (doesn't ask for PIN again)\r
+ 0x04: reset (PIN is requested)\r
+ In 5110 makes reset without PIN\r
+ 0x06: CONTACT SERVICE!!! Don't try it!\r
+ s Get IMEI { 0x66 }\r
+ r Get IMEI { 0x66, 0x01, IMEI, 0x00}\r
+ s (ACD Readings)?(N6150 { 0x68 }\r
+ r (ACD Readings)?(N6150 { 0x68, ... }\r
+ s Get Product Profile\r
+ Settings { 0x6a}\r
+ r Get Product Profile\r
+ Settings { 0x6a, 4bytes with Product Profile Settings }\r
+ s Set Product Profile\r
+ Settings { 0x6b, 4bytes with Product Profile Settings }\r
+ r Set Product Profile\r
+ Settings OK ? { 0x6b }\r
+ s Get code { 0x6e, code }\r
+ where code: see 0x08/0x0004 (no allowed code !)\r
+ r Get code { 0x6e, code, allowed, allowed? (sec code (text)) }\r
+ where code: see 0x08/0x0004\r
+ allowed: 0: no\r
+ 1: yes\r
+? s Reset Permanent\r
+? Counters (nm->test36) { 0x74, 0x01, 0x01, 0x0e }\r
+? r Reset Permanent\r
+? Counters (nm->test36) { 0x74 }\r
+ s Call commands { 0x7c, block }\r
+ where where: command, (values)\r
+ command: 0x01\r
+ values: number(ASCII), 0x00 - makes voice call\r
+ command: 0x02 - answer call\r
+ command: 0x03 - release call\r
+ r Call commands { 0x7c, command }\r
+ s Netmonitor { 0x7e, field }\r
+ where: field: 00: next\r
+ F0: reset\r
+ F1: off\r
+ F2: field test menus\r
+ F3: developer menus\r
+ s Get simlock info { 0x8a, 0x00}\r
+ r Get simlock info { 0x8a, 0x00, 0x01, lockstype, locksclosed, 0x00, 0x00, locksinfo(lock1,4,2,3), counter1,counter2,counter4,counter4,0x00 }\r
+ where: lockstype: bit1,bit2,bit3,bit4 - if set, selected lock is user lock\r
+ locksclosed: bit1,bit2,bit3,bit4 - if set, selected lock is closed\r
+ counter1 - counter4: counters for locks\r
+ s Buzzer pitch { 0x8f, volume, hzLO, hzHI }\r
+ if volume and hz is 0, it's off\r
+ r Buzzer pitch { 0x8f}\r
+ s ACD Readings ? { 0x91, parameter?(0x02,0x03,0x04,0x05,0x07) }\r
+ r ACD Readings ? { 0x91, parameter?, value? }\r
+? s ???(N6150) { 0x98, 0x00 }\r
+? r ???(N6150) { 0x98, 0x00, 0x04 }\r
+ s Get bin ringtone { 0x9e, location }\r
+ where: location=0,1,etc.\r
+ r Get bin ringtone { 0x9e, location, error, contents... }\r
+ where location=0,1,etc.\r
+ error=0x0a, ringtone NOT available\r
+ 0x00, OK\r
+ s Set bin ringtone { 0xa0, location, 0x00, contenst... }\r
+ where: location=0,1,etc.\r
+ r Set bin ringtone { 0xa0, location, error }\r
+ where location=0,1,etc.\r
+ error=0x0a, ringtone NOT set\r
+ 0x00, ringtone set OK\r
+? r Get MSid { 0xb5, 0x01, 0x2f, msid, 0x25 }\r
+ s Get info about phone { 0xc8, 0x01 }\r
+ r Get info about phone { 0xc8, 0x01, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }\r
+ s Get MCU SW Checksum { 0xc8, 0x02 }\r
+ r Get MCU SW Checksum { 0xc8, 0x02, 0x00, checksum (4 bytes),0x00 }\r
+ s DPS External SW { 0xc7, 0x03 }\r
+ r DSP External SW { 0xc7, 0x03, 0x00, string,0x00 }\r
+ s Get HW { 0xc8, 0x05 }\r
+ r Get HW { 0xc8, 0x05, 0x00, HW version (4 bytes), 0x00 }\r
+ s Get "Made" Date { 0xc8, 0x05 }\r
+ r Get "Made" Date { 0xc8, 0x05, 0x00, date(4 bytes), 0x00 }\r
+ s Get DSP Internal SW { 0xc8, 0x09 }\r
+ r Get DSP Internal SW { 0xc8, 0x09, 0x00, version (1 bytes), 0x00 }\r
+ s Get PCI version { 0xc8, 0x0b }\r
+ r Get PCI version { 0xc8, 0x0b, 0x00, version, 0x00 }\r
+ s Get system ASIC { 0xc8, 0x0c }\r
+ r Get system ASIC { 0xc8, 0x0c, 0x00, string, 0x00 }\r
+ s Get COBBA { 0xc8, 0x0d }\r
+ r Get COBBA { 0xc8, 0x0d, 0x00, string, 0x00 }\r
+ s Get PLUSSA { 0xc8, 0x0e }\r
+ r Get PLUSSA { 0xc8, 0x0e, available, 0x00 }\r
+ where available: 0x01: not available\r
+ s Get CCONT { 0xc8, 0x0f }\r
+ r Get CCONT { 0xc8, 0x0f, available, 0x00 }\r
+ where available: 0x01: not available\r
+ s Get PPM version { 0xc8, 0x10 }\r
+ r Get PPM version { 0xc8, 0x10, 0x00, "V ", "firmware", 0x0a, "firmware date", 0x0a, "model", 0x0a, "(c) NMP.", 0x00 }\r
+ s Get PPM info { 0xc8, 0x12 }\r
+ r Get PPM info { 0xc8, 0x12, 0x00, PPM version ("B", "C", etc.), 0x00 }\r
+ s Set HW version { 0xc9, 0x05, version, 0x00 }\r
+ s Get Product Code { 0xca, 0x01 }\r
+ r Get Product Code { 0xca, 0x01, 0x00, number, 0x00 }\r
+ s Get Order Number { 0xca, 0x02 }\r
+ r Get Order Number { 0xca, 0x02, 0x00, string, 0x00 }\r
+ s Get Prod.Ser.Number { 0xca, 0x03 }\r
+ r Get Prod.Ser.Number { 0xca, 0x03, 0x00, number, 0x00 }\r
+ s Get Basic Prod.Code { 0xca, 0x04 }\r
+ r Get Basic Prod.Code { 0xca, 0x04, 0x00, number, 0x00 }\r
+ s Set Product Code { 0xcb, 0x01, product code, 0x00 }\r
+ s Set Order Number { 0xcb, 0x02, number, 0x00 }\r
+ s Set Prod.Ser.Number { 0xcb, 0x03, number, 0x00 }\r
+ s Get (original ?)IMEI { 0xcc, 0x01 }\r
+ r Get (original ?)IMEI { 0xcc, 0x01, IMEI, 0x00 }\r
+ s Get Manufacture Month { 0xcc, 0x02 }\r
+ r Get Manufacture Month { 0xcc, 0x02, 0x00, string, 0x00 }\r
+ s Get Purchare date { 0xcc, 0x04 }\r
+ r Get Purchare date { 0xcc, 0x04, 0x00, string, 0x00 }\r
+ s Set "Made" date { 0xcd, 0x02, string, 0x00 }\r
+ s Make "all" phone tests{ 0xce,0x1d,0xfe,0x23,0x00,0x00}\r
+ s Make one phone test { 0xce,0x1d,num1,num2,num3,num4}\r
+ Where num1-num4: 0x02,0x00,0x00,0x00;\r
+ 0x04,0x00,0x00,0x00;\r
+ 0x08,0x00,0x00,0x00;\r
+ 0x10,0x00,0x00,0x00;\r
+ 0x20,0x00,0x00,0x00;\r
+ 0x40,0x00,0x00,0x00;\r
+ 0x80,0x00,0x00,0x00;\r
+ 0x00,0x01,0x00,0x00;\r
+ 0x00,0x02,0x00,0x00;\r
+ 0x00,0x04,0x00,0x00; - "Power off"\r
+ No test for "Security data"\r
+ 0x00,0x10,0x00,0x00;\r
+ 0x00,0x20,0x00,0x00;\r
+ 0x00,0x40,0x00,0x00;\r
+ 0x00,0x80,0x00,0x00;\r
+ 0x00,0x00,0x01,0x00;\r
+ ....\r
+ 0x00,0x00,0x10,0x00;\r
+ s Result of phone tests { 0xcf }\r
+ r Result of phone tests { 0xcf, number of tests, results of next tests }\r
+? s ??? { 0xd1 }\r
+? r ???(N5110) { 0xd1, 0x00, 0x1d, 0x00, 0x01, 0x08, 0x00 }\r
+ s LCD Test { 0xd3, value }\r
+ where value: 0x03, 0x02 - 1'st test\r
+ 0x03, 0x01 - 2'nd test\r
+ 0x02, 0x03 - clears screen\r
+ s ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01}\r
+ r ACD Readings(N6150)? { 0xd4, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x01, ?}\r
+ r Function of { 0xff, 0x8c }\r
+ 0x40 msgtype not\r
+ supported ?\r
+0x78:\r
+ s Status confirm { 0x0201, 0x03 }\r
+ r Incoming call seq1 { 0x0102 0x0e 0x03 }\r
+ r Incoming call seq2 { 0x0102 0x7e 0x01 }\r
+0x79:\r
+ s CarKit enable { 0x0201 0x01 0x62 0x00 }\r
+ r CarKit enabled { 0x0201 0x02 0x06 0x00 "V " {version} "\nHFU"\r
+ 0x00 }\r
+0x7a: settings\r
+ r Set setting { 0x01eb, number, 0x00 }\r
+ s Set setting { 0x01ec, number, contents }\r
+ where for number:\r
+ 0x02 (startup text) : 0x00, text (Unicode)\r
+ 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,\r
+ 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,\r
+ 0xc0, 0x04, 0x03, 0x00, {bitmap} }\r
+ where width, height, {bitmap}: see 0x7a/0x01ed 0x15\r
+ s Get setting { 0x01ee, number}\r
+ where number: 0x01 - 0x1e\r
+ 0x02: startup text\r
+ 0x15: startup logo\r
+ 0x1c: security code\r
+ r Get setting { 0x01ed,number, 0x00, contents}\r
+ where for number:\r
+ 0x02 (startup text) : 0x00, text (Unicode)\r
+ 0x15 (startup logo) : 0x00, 0x00, 0x00, 0x04,\r
+ 0xc0, 0x02, 0x00, height, 0xc0, 0x03, 0x00, width,\r
+ 0xc0, 0x04, 0x03, 0x00, {bitmap} }\r
+ where height: 60 (0x3c) or 65\r
+ width: 96 (0x60)\r
+ {bitmap}: like other bitmaps but pixels\r
+ placed vertically.\r
+ 0x1c (security code): {code(ascii)}, 0x00 \r
+0x7f: Acknowledge(FBUS/IRDA){+type, seq }\r
+ Acknowledge(MBUS)...\r
+0xd0: \r
+ s Power on message seq1 {+04 }\r
+ r Power on message seq1 {+05 }\r
+0xd1:\r
+ s Get HW&SW version { 0x0003, 0x00 }\r
+0xd2:\r
+ r Get HW&SW version { 0x0003 "V " "firmware\n" "firmware date\n"\r
+ "model\n" "(c) NMP." }\r
+0xf4: Power on message seq 2\r