-1. What do I need?
-
-- a reasonably recent version of GNU gettext (e.g. 0.10.35)
- Check the version using e.g. msgfmt -V
-
-- autoconf
-
-- gnokii distribution :-)
-
-- if you have the variable LINGUAS in the environment
- (most Red Hats have, no idea about other distributions),
- unset it
-
-
-2. How to make gnokii.pot file?
-
-gnokii.pot file is a collection of all localizable strings
-in the gnokii package. It will be generated automagically
-and is included in the standard distribution package.
-
-If you need to regenerate it, goto "po" directory,
-remove gnokii.pot and say
-
- make gnokii.pot
-
-
-3.1 How to start translating for a new language?
-
-First, you would like to contact the authors or write
-to the mailing list - maybe there already is someone
-working on this translation.
-
-If you get the OK from the maintainer, there are several
-steps to do:
-
-- add the code of your language to the ALL_LINGUAS line
- in the configure.in file
-
- Caution: the language code may differ from the country
- code, e.g. czech language is cs, Czech Republic is cz
-
-- run autoconf to recreate configure script
-
-- reconfigure the package (./configure)
-
-- in the po directory, copy gnokii.pot to <country>.po
-
-- start translating
-
-
-3.2 How to merge existing translations with the updated gnokii.pot?
-
-This is simple. Rename the old file and use msgmerge to create
-an updated one:
-
- mv cs.po cs.po.bak
- msgmerge -o cs.po cs.po.bak gnokii.pot
-
-
-4. How to generate a .mo file
-
-When you say make in the po directory, all existing
-translations will be generated. The suffix will be .gmo.
-
-If you want to do this manually, use the msgfmt utility, e.g.
-
- msgfmt -o cs.mo -v cs.po
-
-
-5. How to install the files
-
-Again, the makefile takes care of this. Simply use (as root)
-
- make install
-
-in the po directory. If you want to do this manually (and/or
-for your language only), move the .mo file to
-/usr/share/locale/<your locale>/LC_MESSAGES/gnokii.mo
-
-
-I'm from Czech republic, so I did (well, I did not, but if you would
-like to localize gnokii, you should :-):
-
- cd po
- make gnokii.pot
- cp gnokii.pot cs.po
- <translating messages in cs.po>
- <checking the translations using> msgfmt -o cs.mo -v cs.po
- make
- make install
-
-And now:
-
-SnowWhite:/tmp/gnokii$ export LC_MESSAGES=cs_CZ
-SnowWhite:/tmp/gnokii$ ./gnokii --version
-GNOKII Version 0.3.1 Copyright (C) Hugh Blemings 1999. <hugh@linuxcare.com>
- Kompilace: 19:09:02 Mar 13 1999 pro model 6110 na portu /dev/ttyS0
-SnowWhite:/tmp/gnokii$
-
-The second line is in czech language :-) There are some problems - for
-example with "Mar" which is substitute by the C preprocessor.
-
+1. What do I need?\r
+\r
+- a reasonably recent version of GNU gettext (e.g. 0.10.35)\r
+ Check the version using e.g. msgfmt -V\r
+\r
+- autoconf\r
+\r
+- gnokii distribution :-)\r
+\r
+- if you have the variable LINGUAS in the environment\r
+ (most Red Hats have, no idea about other distributions),\r
+ unset it\r
+\r
+\r
+2. How to make gnokii.pot file?\r
+\r
+gnokii.pot file is a collection of all localizable strings\r
+in the gnokii package. It will be generated automagically\r
+and is included in the standard distribution package.\r
+\r
+If you need to regenerate it, goto "po" directory,\r
+remove gnokii.pot and say\r
+\r
+ make gnokii.pot\r
+\r
+\r
+3.1 How to start translating for a new language?\r
+\r
+First, you would like to contact the authors or write\r
+to the mailing list - maybe there already is someone\r
+working on this translation. \r
+\r
+If you get the OK from the maintainer, there are several\r
+steps to do:\r
+\r
+- add the code of your language to the ALL_LINGUAS line\r
+ in the configure.in file\r
+\r
+ Caution: the language code may differ from the country\r
+ code, e.g. czech language is cs, Czech Republic is cz \r
+\r
+- run autoconf to recreate configure script\r
+\r
+- reconfigure the package (./configure)\r
+\r
+- in the po directory, copy gnokii.pot to <country>.po\r
+\r
+- start translating\r
+ \r
+\r
+3.2 How to merge existing translations with the updated gnokii.pot?\r
+\r
+This is simple. Rename the old file and use msgmerge to create\r
+an updated one:\r
+\r
+ mv cs.po cs.po.bak\r
+ msgmerge -o cs.po cs.po.bak gnokii.pot\r
+\r
+\r
+4. How to generate a .mo file\r
+\r
+When you say make in the po directory, all existing\r
+translations will be generated. The suffix will be .gmo.\r
+\r
+If you want to do this manually, use the msgfmt utility, e.g.\r
+\r
+ msgfmt -o cs.mo -v cs.po \r
+\r
+\r
+5. How to install the files\r
+\r
+Again, the makefile takes care of this. Simply use (as root)\r
+\r
+ make install\r
+\r
+in the po directory. If you want to do this manually (and/or\r
+for your language only), move the .mo file to\r
+/usr/share/locale/<your locale>/LC_MESSAGES/gnokii.mo \r
+\r
+\r
+I'm from Czech republic, so I did (well, I did not, but if you would\r
+like to localize gnokii, you should :-):\r
+\r
+ cd po\r
+ make gnokii.pot\r
+ cp gnokii.pot cs.po\r
+ <translating messages in cs.po>\r
+ <checking the translations using> msgfmt -o cs.mo -v cs.po\r
+ make\r
+ make install\r
+\r
+And now:\r
+\r
+SnowWhite:/tmp/gnokii$ export LC_MESSAGES=cs_CZ\r
+SnowWhite:/tmp/gnokii$ ./gnokii --version\r
+GNOKII Version 0.3.1 Copyright (C) Hugh Blemings 1999. <hugh@linuxcare.com>\r
+ Kompilace: 19:09:02 Mar 13 1999 pro model 6110 na portu /dev/ttyS0 \r
+SnowWhite:/tmp/gnokii$ \r
+\r
+The second line is in czech language :-) There are some problems - for\r
+example with "Mar" which is substitute by the C preprocessor.\r
+\r
NOTE for command line gnokii:
---netmonitordata
-
- we have used two data structure, defined in gnokii.h :
-
- PARAM_INFO_MON wich is a single linked recursive list of pointers,
- each pointers contain the complete description of one netmonitor param.
-
- ///////////////////////////////////////////////////////////////////////
- // start->next->next->next-> ...->next->NULL
- // | | | |
- // V V V V
- // par0 par1 par2 parN
- ///////////////////////////////////////////////////////////////////////
-
- OUT_INFO_MON, contains parameters as specified
- from the command line and an array of data pointers requested by user,
- each one point to a single PARAM_INFO_MON
- for optimization reason, also we filled in one array of required screen.
-
-
- this the block diagram of program:
-
- PARAM_INFO_MON *info:
- OUT_INFO_MON *out:
-
- netmonitordata()
-
- check for -S option, assign filename
-
- check for -I option, assign filename
-
- autodetect_phonemodel_phone_version() This is TO DO
-
- info = get_min_param_info() // nedeed here, so later we can check args param
-
- // here we check command line arguments
- if -I option
-
- for each line
- do
- parse_check(f_argc, f_argv, info, file, line)
- done
- else
- parse_check(argc, argv, info, NULL, 0)
- fi
-
-
- // HERE, ALL IS CHECKED
-
- // here we make OUT_INFO_MON
- if -I option
-
- for each line
- do
- out = parse_process(f_argc, f_argv, info, file, line)
-
- nmd_output(out)
-
- free(out)
- done
- else
- out = parse_process(argc, argv, info, NULL, 0)
-
- nmd_output(out)
-
- free(out)
- fi
+--netmonitordata\r
+\r\r
+ we have used two data structure, defined in gnokii.h :\r
+\r
+ PARAM_INFO_MON wich is a single linked recursive list of pointers,\r
+ each pointers contain the complete description of one netmonitor param.\r
+\r
+ ///////////////////////////////////////////////////////////////////////\r
+ // start->next->next->next-> ...->next->NULL\r
+ // | | | |\r
+ // V V V V\r
+ // par0 par1 par2 parN\r
+ ///////////////////////////////////////////////////////////////////////\r
+ \r
+ OUT_INFO_MON, contains parameters as specified\r
+ from the command line and an array of data pointers requested by user,\r
+ each one point to a single PARAM_INFO_MON\r
+ for optimization reason, also we filled in one array of required screen.\r
+\r
+\r
+ this the block diagram of program:\r
+ \r
+ PARAM_INFO_MON *info:\r
+ OUT_INFO_MON *out:\r
+\r
+ netmonitordata()\r
+\r
+ check for -S option, assign filename\r
+ \r
+ check for -I option, assign filename\r
+ \r
+ autodetect_phonemodel_phone_version() This is TO DO\r
+ \r
+ info = get_min_param_info() // nedeed here, so later we can check args param\r
+ \r
+ // here we check command line arguments\r
+ if -I option\r
+\r
+ for each line\r
+ do\r
+ parse_check(f_argc, f_argv, info, file, line)\r
+ done\r
+ else\r
+ parse_check(argc, argv, info, NULL, 0)\r
+ fi\r
+\r
+ \r
+ // HERE, ALL IS CHECKED\r
+ \r
+ // here we make OUT_INFO_MON\r
+ if -I option\r
+\r
+ for each line\r
+ do\r
+ out = parse_process(f_argc, f_argv, info, file, line)\r
+\r
+ nmd_output(out)\r
+\r
+ free(out)\r
+ done\r
+ else\r
+ out = parse_process(argc, argv, info, NULL, 0)\r
+\r
+ nmd_output(out)\r
+\r
+ free(out)\r
+ fi\r
-
- Common information:
-
- For more install/compilation information see the INSTALL file.
-
- (!) Makefiles support make install prefix=<your_directory>
- for package building. You can use it example in for .spec:
-
- ./configure --prefix=/usr
- make install prefix=$RPM_BUILD_ROOT/usr
-
- (You not need create any dirs - all make make install.)
-
- For a installation procedure is used 'make install' or
- 'make install prefix=', and all outputs from this routine must be
- correct. Please, not make any correction in your package specific
- build system (example use 'cp' in package routines - .spec -
- it is job for Makefiles). Write more different routines for
- instalation is good way to hell...
-
- 'make install' not install documentation, because for this use
- any distribution itself routines. If you want install docs via
- Makefile you must type 'make install-docs'
-
- Debian:
-
- 1/ Add new lines to Debian/changelog and set corect verion in this
- file.
-
- 2/ Check files: rules, menu, docs
-
- 3/ Well, because gnokii's debian directory is in subdirectory
- 'packaging' and it is total non-standard for Debian package
- building system, you must firstly type in top directory:
-
- # ln -s packaging/Debian debian
-
- 3/ In source type:
-
- # debian/rules binary
- # debian/rules clean
-
- 4/ Delete symlink
-
- # rm debian
-
-
-
- FreeBSD:
-
-
-
- RedHat:
-
-
-
-
-
- Win32:
+\r
+ Common information:\r
+ \r
+ For more install/compilation information see the INSTALL file.\r
+ \r
+ (!) Makefiles support make install prefix=<your_directory> \r
+ for package building. You can use it example in for .spec:\r
+ \r
+ ./configure --prefix=/usr\r
+ make install prefix=$RPM_BUILD_ROOT/usr\r
+\r
+ (You not need create any dirs - all make make install.)\r
+\r
+ For a installation procedure is used 'make install' or\r
+ 'make install prefix=', and all outputs from this routine must be \r
+ correct. Please, not make any correction in your package specific \r
+ build system (example use 'cp' in package routines - .spec - \r
+ it is job for Makefiles). Write more different routines for \r
+ instalation is good way to hell...\r
+ \r
+ 'make install' not install documentation, because for this use \r
+ any distribution itself routines. If you want install docs via\r
+ Makefile you must type 'make install-docs' \r
+\r
+ Debian:\r
+ \r
+ 1/ Add new lines to Debian/changelog and set corect verion in this\r
+ file.\r
+\r
+ 2/ Check files: rules, menu, docs\r
+\r
+ 3/ Well, because gnokii's debian directory is in subdirectory \r
+ 'packaging' and it is total non-standard for Debian package \r
+ building system, you must firstly type in top directory:\r
+\r
+ # ln -s packaging/Debian debian \r
+ \r
+ 3/ In source type:\r
+\r
+ # debian/rules binary\r
+ # debian/rules clean\r
+\r
+ 4/ Delete symlink\r
+\r
+ # rm debian\r
+\r
+ \r
+\r
+ FreeBSD:\r
+\r
+ \r
+\r
+ RedHat:\r
+\r
+\r
+\r
+\r
+\r
+ Win32:\r
\ No newline at end of file
-Subject: RE: Xgnokii in win32 ?
-Date: Mon, 29 Nov 1999 08:45:31 +0100
-From: Acquadro Daniele <acquadro.daniele@logicasiel.it>
-To: marcinw0@poczta.onet.pl
-CC: gnokii <gnokii@net.lut.ac.uk>
-
-Hi ,
-gtk for windows can be donloaded from www.gtk.org. On the left there's a
-link to GTK+ on win32 (on the bottom of the page).
-
-To compile xGnokii, using VC ide, you have to create a new win32 CONSOLE
-application (NOT a win32 application) and then add the libraries.
-TO COMPILE you need those libraries
-gdk-1.3.lib
-gtk-1.3.lib
-glib-1.3.lib
-
- bye
- Daniele
-> -----Original Message-----
-> From: Marcin Wiacek [SMTP:marcinw0@poczta.onet.pl]
-> Sent: domenica 28 novembre 1999 22.50
-> To: GNU Nokia mailing List
-> Subject: Xgnokii in win32 ?
->
->
-> Hi,
->
-> I want to know only, where can I get GTK libraries for win32 (they're
-> required for compiling xgnokii) from ?
->
-> Or maybe somebody will write on the list/some WWW page, what to do to
-> compile xgnokii in win32 (how to replace GTK libraries with win procedures
-> -
-> I think, it will be better) ?
->
-> ...maybe I shouldn't ask for it, but it isn't written in gnokii source...
->
-> Regards,
->
-> Marcin
->
+Subject: RE: Xgnokii in win32 ?\r
+Date: Mon, 29 Nov 1999 08:45:31 +0100\r
+From: Acquadro Daniele <acquadro.daniele@logicasiel.it>\r
+To: marcinw0@poczta.onet.pl\r
+CC: gnokii <gnokii@net.lut.ac.uk>\r
+\r
+Hi ,\r
+gtk for windows can be donloaded from www.gtk.org. On the left there's a\r
+link to GTK+ on win32 (on the bottom of the page).\r
+\r
+To compile xGnokii, using VC ide, you have to create a new win32 CONSOLE\r
+application (NOT a win32 application) and then add the libraries.\r
+TO COMPILE you need those libraries\r
+gdk-1.3.lib\r
+gtk-1.3.lib\r
+glib-1.3.lib\r
+\r
+ bye\r
+ Daniele\r
+> -----Original Message-----\r
+> From: Marcin Wiacek [SMTP:marcinw0@poczta.onet.pl]\r
+> Sent: domenica 28 novembre 1999 22.50\r
+> To: GNU Nokia mailing List\r
+> Subject: Xgnokii in win32 ?\r
+>\r
+>\r
+> Hi,\r
+>\r
+> I want to know only, where can I get GTK libraries for win32 (they're\r
+> required for compiling xgnokii) from ?\r
+>\r
+> Or maybe somebody will write on the list/some WWW page, what to do to\r
+> compile xgnokii in win32 (how to replace GTK libraries with win procedures\r
+> -\r
+> I think, it will be better) ?\r
+>\r
+> ...maybe I shouldn't ask for it, but it isn't written in gnokii source...\r
+>\r
+> Regards,\r
+>\r
+> Marcin\r
+>\r
-Do: Markus Plail
-Temat: RE: RE:
-
-
-Hi,
-
-> Sorry for the confusion. I wrote the subject (getsms for 6210) in
-> the CC field.
-No problem :-)
-
-> So this is what I want to try, in linux btw. U wrote that u can
-> give some information on that topic.
-OK. Good.
-
-First of all, you HAVE to understand, how/where are created all phone functions. Look into n7110.c for N7110_Functions. This is our structure for each function - getting SMS, etc. You have pointers to each function sending request.
-
-Example: N6110_NetMonitor for netmonitor function.
-
-If each function (let's say N6110_NetMonitor) you send frame for phone:
------------------------------
- unsigned char req[] = { 0x00, 0x01, 0x7e, 0x00 };
-
- GSM_Error error;
-
- error=N6110_EnableExtendedCommands(0x01);
- if (error!=GE_NONE) return error;
-
- CurrentNetmonitor=Screen;
-
- req[3]=mode;
-
- return N6110_SendMessageSequence
- (20, &CurrentNetmonitorError, 4, 0x40, req);
----------------------------
-In req you prepare it (see 6110.txt/7110.txt for frame for netmonitor and compare it with req).
-
-First (this is specific for netmonitor and some other) need to send something, we call EnableExtendedCommands - we must send special frame and wait for answer. And ONLY after it phone will answer with 0x40 frames. For SMS in 6210 it's not required.
-
-After it we set pointer to structure given by user (pointers are declared in gsm-api.c & gsm-api.h): CurrentNetmonitor=Screen;
-
-Prepare frame send to phone...
-
-And use N6110_SendMessageSequence -> first is, how long we can wait for phone answer (20), next: what variable is used to see, if phone answered (I will later describe more - variable created in gsm-api.c & gsm-api.h), how many bytes in req, frame type and req.
-
-That's all here.
-
-All answers are handled in N7110_DispatchMessage
-
-In example look for:
-
- fprintf(stdout, _("Message: Netmonitor menu %d received:\n"), MessageBuffer[3]);
-
-You copy formatted answer to structure pointed by CurrentNetmonitor (in example) and set CurrentNetmonitorError to GE_NONE (it makes, that N6110_SendMessageSequence returns: NO error). That's all.
---------------------
-If you understand, let's start:
-
-1.need to make new N7110_GetSMSFolders similiar to N6110_GetSMSFolders (send frame - it's described in 7110.txt: "Get folder names", wait for answer and return it) and set N7110_Functions to point on it (in line 127).
-
-After it we will be able to make "real" getsms...
-
-Any questions ?
-
-Pozdrowienia/Best Regards
---
-Marcin Wiacek -> mailto:marcinwiacek@topnet.pl http://marcin-wiacek.topnet.pl (http://www.fkn.pl/marcinw) -> netmonitor, firmware, mygnokii (GSM & Nokia)
+Do: Markus Plail\r
+Temat: RE: RE:\r
+\r
+\r
+Hi,\r
+\r
+> Sorry for the confusion. I wrote the subject (getsms for 6210) in \r
+> the CC field.\r
+No problem :-)\r
+\r
+> So this is what I want to try, in linux btw. U wrote that u can \r
+> give some information on that topic.\r
+OK. Good.\r
+\r
+First of all, you HAVE to understand, how/where are created all phone functions. Look into n7110.c for N7110_Functions. This is our structure for each function - getting SMS, etc. You have pointers to each function sending request.\r
+\r
+Example: N6110_NetMonitor for netmonitor function.\r
+\r
+If each function (let's say N6110_NetMonitor) you send frame for phone:\r
+-----------------------------\r
+ unsigned char req[] = { 0x00, 0x01, 0x7e, 0x00 };\r
+ \r
+ GSM_Error error;\r
+ \r
+ error=N6110_EnableExtendedCommands(0x01);\r
+ if (error!=GE_NONE) return error;\r
+\r
+ CurrentNetmonitor=Screen;\r
+\r
+ req[3]=mode;\r
+\r
+ return N6110_SendMessageSequence\r
+ (20, &CurrentNetmonitorError, 4, 0x40, req);\r
+---------------------------\r
+In req you prepare it (see 6110.txt/7110.txt for frame for netmonitor and compare it with req).\r
+\r
+First (this is specific for netmonitor and some other) need to send something, we call EnableExtendedCommands - we must send special frame and wait for answer. And ONLY after it phone will answer with 0x40 frames. For SMS in 6210 it's not required.\r
+\r
+After it we set pointer to structure given by user (pointers are declared in gsm-api.c & gsm-api.h): CurrentNetmonitor=Screen;\r
+\r
+Prepare frame send to phone...\r
+\r
+And use N6110_SendMessageSequence -> first is, how long we can wait for phone answer (20), next: what variable is used to see, if phone answered (I will later describe more - variable created in gsm-api.c & gsm-api.h), how many bytes in req, frame type and req.\r
+\r
+That's all here.\r
+\r
+All answers are handled in N7110_DispatchMessage\r
+\r
+In example look for:\r
+\r
+ fprintf(stdout, _("Message: Netmonitor menu %d received:\n"), MessageBuffer[3]);\r
+\r
+You copy formatted answer to structure pointed by CurrentNetmonitor (in example) and set CurrentNetmonitorError to GE_NONE (it makes, that N6110_SendMessageSequence returns: NO error). That's all.\r
+--------------------\r
+If you understand, let's start:\r
+\r
+1.need to make new N7110_GetSMSFolders similiar to N6110_GetSMSFolders (send frame - it's described in 7110.txt: "Get folder names", wait for answer and return it) and set N7110_Functions to point on it (in line 127).\r
+\r
+After it we will be able to make "real" getsms...\r
+\r
+Any questions ?\r
+\r
+Pozdrowienia/Best Regards\r
+--\r
+Marcin Wiacek -> mailto:marcinwiacek@topnet.pl http://marcin-wiacek.topnet.pl (http://www.fkn.pl/marcinw) -> netmonitor, firmware, mygnokii (GSM & Nokia)\r
http://www.mds.mdh.se/~cel95eig/mygnokii/ & http://grumble.zereau.com/gnokii/ & http://reinhold.bachrain.de/ -> mygnokii mirrors
\ No newline at end of file
-//SCKL1584
-BODY:
-IA:
-OPER ariel
-Link up
-N
-
-M SMS
-+6421XXXXXX/+6421YYYYYY
-6:LINKUP
---
-IA:
-OPER ariel
-Link down
-N
-
-M SMS
-+6421XXXXXX/+6421YYYYYY
-8:LINKDOWN
+//SCKL1584 \r
+BODY:\r
+IA:\r
+OPER ariel\r
+Link up\r
+N\r
+\r
+M SMS\r
++6421XXXXXX/+6421YYYYYY\r
+6:LINKUP\r
+--\r
+IA:\r
+OPER ariel\r
+Link down\r
+N\r
+\r
+M SMS\r
++6421XXXXXX/+6421YYYYYY\r
+8:LINKDOWN\r
-
-1.see Smart Messaging 2.0 for info, what the DMCP is
-
-2.I didn't have success in changing menus via cable (without sending SMS).
- Here is example foogle funtion. You will see only "Nokia service update failed"
-------------------------------------
-int foogle(char *argv[])
-{
- GSM_NetworkInfo NetworkInfo;
- int i;
-
- char buffer[100]= { 0x0c, 0x01,
- 0x06, /* User Data Header Length */
- 0x05, /* IEI: application port addressing scheme, 16 bit address */
- 0x04, /* IEDL (IED length ?) */
- 0x15, /* destination address: high byte */
- 0x84, /* destination address: low byte */
- 0x00, /* originator address: high byte */
- 0x00}; /* originator address: low byte */
-
- int MSGLEN=9;
-
- /* Initialise the code for the GSM interface. */
-
- fbusinit(NULL);
-
- buffer[MSGLEN++]='B';
- buffer[MSGLEN++]='O';
- buffer[MSGLEN++]='D';
- buffer[MSGLEN++]='Y';
- buffer[MSGLEN++]=':';
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]='I';
- buffer[MSGLEN++]='A';
- buffer[MSGLEN++]=':';
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]='O';
- buffer[MSGLEN++]='P';
- buffer[MSGLEN++]='E';
- buffer[MSGLEN++]='R';
- buffer[MSGLEN++]=' ';
- buffer[MSGLEN++]='a';
- buffer[MSGLEN++]='l';
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]='L';
- buffer[MSGLEN++]='i';
- buffer[MSGLEN++]='n';
- buffer[MSGLEN++]='k';
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]='N';
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]='M';
- buffer[MSGLEN++]=' ';
- buffer[MSGLEN++]='S';
- buffer[MSGLEN++]='M';
- buffer[MSGLEN++]='S';
- buffer[MSGLEN++]=10;
- buffer[MSGLEN++]='+';
- buffer[MSGLEN++]='4';
- buffer[MSGLEN++]='8';
- buffer[MSGLEN++]='6';
- buffer[MSGLEN++]='0';
- buffer[MSGLEN++]='2';
- buffer[MSGLEN++]='9';
- buffer[MSGLEN++]='5';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='/';
- buffer[MSGLEN++]='+';
- buffer[MSGLEN++]='4';
- buffer[MSGLEN++]='8';
- buffer[MSGLEN++]='6';
- buffer[MSGLEN++]='0';
- buffer[MSGLEN++]='2';
- buffer[MSGLEN++]='9';
- buffer[MSGLEN++]='5';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='1';
- buffer[MSGLEN++]='1';
-
- for (i=0;i<MSGLEN;i++) {
- fprintf(stdout,_("%c"),buffer[i]);
- }
-
- Protocol->SendMessage(MSGLEN, 0x12, buffer);
- GSM->GetNetworkInfo(&NetworkInfo); //need to make something
-
-
- GSM->Terminate();
-
- return 0;
-}
------------------------------------
-3.to change via SMS - read parts of email sent by Martin Lucina [mato@kotelna.sk]
------------------------------------
-
-1. First of all, use the OPER (Operator) services rather than the Nokia
- services. There's probably no reason why you couldn't use either but
- there may be extra hooks in the phone firmware regarding Nokia
- services that I don't know about.
-
-2. Make sure that "Operator access number 1" and "Operator access number
- 2" are set correctly in the services menu. The former should be set
- to the SMS centre the messages you send are going to come from
- (important, send yourself a test message and check it's details, some
- operators set the sending SMSC number to one different from the one
- you originally sent the message to). The latter should be the number
- of the MS you are sending the SMS from.
-
-3. Don't send the messages as binary NBS messsages using the UDH. I
- haven't been able to get this method to work and besides, the //SCK
- compatibility header works just fine.
-
- Also, while I haven't seen this, it's possible that if you send a
- message in binary format, the destination MS will reply in binary
- format. This makes the reply useless if you are sending from another
- NBS-aware phone, since the NBS router will most likely silently
- discard it (or try to forward it to the phones TTML/DMCP server,
- which won't help either).
-
- If you send the messages as text, the replies I've seen also come
- back as text so you can retrieve them from the phone in the normal
- fashion.
-
-One caveat I've noticed with sending NBS messages using the //SCK
-compatibility header is that the NBS grammar in the Nokia SM spec
-version 2 contradicts the grammar in the original Intel NBS spec. Nokia
-says you can using either a newline or space as the delimiter after
-"//SCK", it turns out that you _must_ use a space (as stated in the
-Intel spec). Of course you can still stick a newline in afterwards.
-
-I have attached a test file that will add two menu items that send SMS
-messages to your services menu. I send this to the phone using
-
-$ sendsms +6421XXXXXX < addsms
-
-[...]
-
-Cheers,
-
---
-Martin Lucina http://www.kotelna.sk/mato/ Wellington, New Zealand
-I've always been mad I know I've been mad like the most of us are
-Pretty hard to explain why you're a madman even if you're not mad
+\r
+1.see Smart Messaging 2.0 for info, what the DMCP is\r
+\r
+2.I didn't have success in changing menus via cable (without sending SMS).\r
+ Here is example foogle funtion. You will see only "Nokia service update failed"\r
+------------------------------------\r
+int foogle(char *argv[])\r
+{\r
+ GSM_NetworkInfo NetworkInfo;\r
+ int i;\r
+\r
+ char buffer[100]= { 0x0c, 0x01,\r
+ 0x06, /* User Data Header Length */\r
+ 0x05, /* IEI: application port addressing scheme, 16 bit address */\r
+ 0x04, /* IEDL (IED length ?) */\r
+ 0x15, /* destination address: high byte */\r
+ 0x84, /* destination address: low byte */\r
+ 0x00, /* originator address: high byte */\r
+ 0x00}; /* originator address: low byte */\r
+\r
+ int MSGLEN=9;\r
+\r
+ /* Initialise the code for the GSM interface. */ \r
+\r
+ fbusinit(NULL);\r
+\r
+ buffer[MSGLEN++]='B';\r
+ buffer[MSGLEN++]='O'; \r
+ buffer[MSGLEN++]='D';\r
+ buffer[MSGLEN++]='Y';\r
+ buffer[MSGLEN++]=':';\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]='I';\r
+ buffer[MSGLEN++]='A';\r
+ buffer[MSGLEN++]=':';\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]='O';\r
+ buffer[MSGLEN++]='P';\r
+ buffer[MSGLEN++]='E';\r
+ buffer[MSGLEN++]='R';\r
+ buffer[MSGLEN++]=' ';\r
+ buffer[MSGLEN++]='a';\r
+ buffer[MSGLEN++]='l';\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]='L';\r
+ buffer[MSGLEN++]='i';\r
+ buffer[MSGLEN++]='n';\r
+ buffer[MSGLEN++]='k';\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]='N';\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]='M';\r
+ buffer[MSGLEN++]=' ';\r
+ buffer[MSGLEN++]='S';\r
+ buffer[MSGLEN++]='M';\r
+ buffer[MSGLEN++]='S';\r
+ buffer[MSGLEN++]=10;\r
+ buffer[MSGLEN++]='+';\r
+ buffer[MSGLEN++]='4';\r
+ buffer[MSGLEN++]='8';\r
+ buffer[MSGLEN++]='6';\r
+ buffer[MSGLEN++]='0';\r
+ buffer[MSGLEN++]='2';\r
+ buffer[MSGLEN++]='9';\r
+ buffer[MSGLEN++]='5';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='/';\r
+ buffer[MSGLEN++]='+';\r
+ buffer[MSGLEN++]='4';\r
+ buffer[MSGLEN++]='8';\r
+ buffer[MSGLEN++]='6';\r
+ buffer[MSGLEN++]='0';\r
+ buffer[MSGLEN++]='2';\r
+ buffer[MSGLEN++]='9';\r
+ buffer[MSGLEN++]='5';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='1';\r
+ buffer[MSGLEN++]='1';\r
+\r
+ for (i=0;i<MSGLEN;i++) {\r
+ fprintf(stdout,_("%c"),buffer[i]);\r
+ }\r
+\r
+ Protocol->SendMessage(MSGLEN, 0x12, buffer);\r
+ GSM->GetNetworkInfo(&NetworkInfo); //need to make something\r
+\r
+ \r
+ GSM->Terminate();\r
+\r
+ return 0;\r
+}\r
+-----------------------------------\r
+3.to change via SMS - read parts of email sent by Martin Lucina [mato@kotelna.sk]\r
+-----------------------------------\r
+\r
+1. First of all, use the OPER (Operator) services rather than the Nokia\r
+ services. There's probably no reason why you couldn't use either but\r
+ there may be extra hooks in the phone firmware regarding Nokia\r
+ services that I don't know about.\r
+\r
+2. Make sure that "Operator access number 1" and "Operator access number\r
+ 2" are set correctly in the services menu. The former should be set\r
+ to the SMS centre the messages you send are going to come from\r
+ (important, send yourself a test message and check it's details, some\r
+ operators set the sending SMSC number to one different from the one\r
+ you originally sent the message to). The latter should be the number\r
+ of the MS you are sending the SMS from.\r
+\r
+3. Don't send the messages as binary NBS messsages using the UDH. I\r
+ haven't been able to get this method to work and besides, the //SCK\r
+ compatibility header works just fine. \r
+ \r
+ Also, while I haven't seen this, it's possible that if you send a\r
+ message in binary format, the destination MS will reply in binary\r
+ format. This makes the reply useless if you are sending from another\r
+ NBS-aware phone, since the NBS router will most likely silently\r
+ discard it (or try to forward it to the phones TTML/DMCP server,\r
+ which won't help either). \r
+ \r
+ If you send the messages as text, the replies I've seen also come\r
+ back as text so you can retrieve them from the phone in the normal\r
+ fashion.\r
+\r
+One caveat I've noticed with sending NBS messages using the //SCK\r
+compatibility header is that the NBS grammar in the Nokia SM spec\r
+version 2 contradicts the grammar in the original Intel NBS spec. Nokia\r
+says you can using either a newline or space as the delimiter after\r
+"//SCK", it turns out that you _must_ use a space (as stated in the\r
+Intel spec). Of course you can still stick a newline in afterwards.\r
+\r
+I have attached a test file that will add two menu items that send SMS\r
+messages to your services menu. I send this to the phone using\r
+\r
+$ sendsms +6421XXXXXX < addsms\r
+\r
+[...]\r
+\r
+Cheers,\r
+\r
+-- \r
+Martin Lucina http://www.kotelna.sk/mato/ Wellington, New Zealand \r
+I've always been mad I know I've been mad like the most of us are \r
+Pretty hard to explain why you're a madman even if you're not mad \r
-//SCKL1584
-BODY:
-IR:
-OPER ariel
-Link up
+//SCKL1584 \r
+BODY:\r
+IR:\r
+OPER ariel\r
+Link up\r
-Od: owner-gnokii@net.lut.ac.uk w imieniu Bernhard Mähr [Bernhard.Maehr@GMX.at]
-Wysłano: 25 listopada 2000 17:06
-Do: gnokii@net.lut.ac.uk
-Temat: Telefonbucheditor 7110
-
-For everyone who trys to decode the 7110 FBUS protocol a tip:
-If in the Windows-Registry HKEY_LOCAL_MACHINE\SOFTWARE\moosy.development\TBE7110
-the String Data is replaced with a Binary with the name Data the program shows a
-error message at the begin but it also enables a option debug. This option
-displays a second window showing the trace of the FBUS. So it should be easier
-to decode the protocol. So it is possible to see the communiction while loading
-the phone numbers, adresses,... and also syncronizing the calendar.
-
-I know it is a little bit unfair, don't tell me that.
-
-I hope this is useful for someone
-
-Bernhard Mähr
-
+Od: owner-gnokii@net.lut.ac.uk w imieniu Bernhard Mähr [Bernhard.Maehr@GMX.at]\r
+Wysłano: 25 listopada 2000 17:06\r
+Do: gnokii@net.lut.ac.uk\r
+Temat: Telefonbucheditor 7110 \r
+\r
+For everyone who trys to decode the 7110 FBUS protocol a tip:\r
+If in the Windows-Registry HKEY_LOCAL_MACHINE\SOFTWARE\moosy.development\TBE7110 \r
+the String Data is replaced with a Binary with the name Data the program shows a \r
+error message at the begin but it also enables a option debug. This option \r
+displays a second window showing the trace of the FBUS. So it should be easier \r
+to decode the protocol. So it is possible to see the communiction while loading \r
+the phone numbers, adresses,... and also syncronizing the calendar. \r
+ \r
+I know it is a little bit unfair, don't tell me that.\r
+ \r
+I hope this is useful for someone\r
+ \r
+Bernhard Mähr\r
+ \r
-To irda sniffs use irda_intercept.tgz
-(http://www.dev-thomynet.de/nokworld/noktrace/index.html or tools directory
+To irda sniffs use irda_intercept.tgz\r
+(http://www.dev-thomynet.de/nokworld/noktrace/index.html or \rtools directory
- unpacked source is there) from Thomas Schneider
-
-how to use it:
-you MUST stop irda support ('rcirda stop' fur SUSE)
-to free the infrared tty port.
-just type irda_intercept and you should see
-irda packages of port /dv/ttyS1 (hardcoded in source).
-The tool writes also to file 'out.trc'.
-Use this file to decode: 'gnokii --decodefile out.trc'
+\r
+how to use it:\r
+you MUST stop irda support ('rcirda stop' fur SUSE)\r
+to free the infrared tty port.\r
+just type irda_intercept and you should see\r
+irda packages of port /dv/ttyS1 (hardcoded in source).\r
+The tool writes also to file 'out.trc'.\r
+Use this file to decode: 'gnokii --decodefile out.trc'\r
(mygnokii have to be compiled with debug)
+\r
\ No newline at end of file
-
-Last update 06.02.2002
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Assembled by
- Balazs Nagy (js@lsc.hu)
- Harri Yli-Torkko (hyt@surfeu.fi)
- Alfred R. Nurnberger <arnu@flosys.com>
- Hugh Blemings <Hugh.Blemings@vsb.com.au>
- Mike Bradley <mike@trumpington.st>
- Odinokov Serge <serge@takas.lt>
- Pavel Janik <Pavel@Janik.cz>
- Pawel Kot <pkot@linuxnews.pl>
- Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)
- ... 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/PCN Nokia 6110 and derivatives (Nokia 6130, 6150, 6190, 5110, 5130, 5150,
-5190, 3210, 3310)
-Correct format is FBUS version 2/Direct IRDA/MBUS version 2
-(see nokia.txt for protocol details):
-
- List:
-
-0x00: Monitoring values
- r monitoring value {+0x01, 0x01, block... }
- where block: 0x5e, 0x05, 0x7a(?), 0xd0(?), 0x85(?), 0x02, percentHI, percentLO
- Battery percent level
- 0x5e, 0x0c, 0x52(?), 0x4b(?), 0x6f(?), 0x02, voltageHI, voltageLO
- Battery standby voltage
- ............
-0x01: Call Information
- s Make call { 0x0001, "number", type, block }
- where type:
- 0x01 - data call
- 0x05 - voice call
- block:
- data call (non digital lines):
- 0x02,0x01,0x05,0x81,0x01,0x00,0x00,0x01,0x02,0x0a,
- 0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00
- data call (digital lines):
- 0x02,0x01,0x05,0x81,0x01,0x00,0x00,0x01,0x02,0x0a,
- 0x07,0xa1,0x88,0x89,0x21,0x15,0x63,0xa0,0x00,0x06,
- 0x88,0x90,0x21,0x48,0x40,0xbb
- voice call:
- 0x01, 0x01, 0x05, 0x81/0x00, sendnum, 0x00, 0x00, 0x01
- where:
- sendnum (own number sending):
- 0x01: preset (depends on network)
- 0x03: on
- 0x02: off
- r Call going 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" }
- s Answer call part 2 { 0x0006, seqnr, 0x00 }
- r answered call { 0x0007, seqnr }
- s Hang up { 0x0008, seqnr, 0x85 }
- r terminated call { 0x0009, seqnr }
- r call msg { 0x000a, seqnr }
- r Send DTMF/voice call { 0x0040}
- s Answer call part 1 { 0x0042,0x05,0x01,0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,
- 0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80 }
- s Sent after issuing { 0x0042,0x05,0x81,0x07,0xa1,0x88,0x89,0x21,0x15,0x63,0xa0,0x00,0x06,
- data call 0x88,0x90,0x21,0x48,0x40,0xbb,0x07,0xa3,
- (digital lines) 0xb8,0x81,0x20,0x15,0x63,0x80 }
- s Sent after issuing { 0x0042,0x05,0x01,0x07,0xa2,0xc8,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,
- data call 0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80,
- (non digital lines) 0x01,0x60 }
- s Send DTMF { 0x0050, length, {ascii codes for DTMF}, 0x01 }
-
- Note:
- to make data call (non digital lines):
- 1.send "Make call" for non digital lines
- 2.send "Sent after issuing data call (non digital lines)"
- to make data call (digital lines):
- 1.send "Answer call part 1"
- 2.send "Sent after issuing data call (digital lines)"
- 3.send "Make call" for digital lines
- to answer call:
- 1.send "Answer call part 1"
- 2.send "Answer call part 2"
-
-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 Get SMS message { 0x0007, 0x02, location, 0x01, 0x64 }
- s Initiate connection { 0x000d, 0x00, 0x00, 0x02 }
- r Initiate ACK { 0x000e, 0x01 }
- r SMS message received { 0x0010, ...... } (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? ,0?, format,
- validity, {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: 0x0b: 1 hour
- 0x47: 6 hours
- 0xa7: 24 hours
- 0xa9: 72 hours
- 0xad: 1 week
- 0xff: 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?, format, 0x00?,
- validity, {DefaultRecipient no.}[12],
- {SMScenter no.}[12], {SMSC name}, 0x00}
- tel.no[12]: {len, type, {number(BCD)}}
- where priority, checksum, type, validity,
- tel.no.[12]: see 0x02/0x0030
- r SMS center error recv { 0x0035, reason }
-0x03: Phonebook functions
- s Get mem location { 0x0001, memtype, location, 0 }
- where memory:
- 0x01: telephone and SIM phonebook (in one)
- 0x02: telephone phonebook
- 0x03: SIM phonebook
- 0x04: SIM fixdialling-phonebook (?)
- 0x05: Own numbers
- 0x07: Dialled numbers
- 0x08: Missed calls
- 0x09: Received calls
- 0x0b: voice mailbox (location not important)
- r mem location recvd { 0x0002, 0x00,namelen,"name",numlen,"number",groupID, 0x01?, yearLO, yearHI, month, day, hour, minute, sec. }
- Note: in 3310 all entries have null name ("feature" of bug ?)
- r mem loc error recvd { 0x0003, errtype }
- where errtype: 0x7d: invalid memory type
- s Set mem location { 0x0004, memtype,location,namelen,"Name",numlen,"number",groupID }
- r mem set OK { 0x0005 }
- r mem set error { 0x0006, errtype }
- where errtype: 0x7d: name is too long
- s Mem status request { 0x0007, memtype }
- r Mem status recvd { 0x0008, memtype, free, used }
- r Mem status error recv { 0x0009, errtype }
- where errtype: 0x6f: mem status error
- 0x7d: invalid memory type
- 0x8d: waiting for pin
- s Get caller group data { 0x0010, groupID }
- r Get caller group data { 0x0011, groupID, size, "Name", ringtoneID, graphic_on?1:0, lenHI, lenLO, OTABitmap (72x14 logo) }
- r Get call.group error { 0x0012, reason }
- where reason: 0x7d: invalid location
- s Set caller group data { 0x0013, groupID, size, "Name", ringtoneID, graphic_on?1:0, lenHI, lenLO, OTABitmap (72x14 logo) }
- r Set caller group OK { 0x0014 }
- r Set call.group error { 0x0015, reason }
- where reason: 0x7d: invalid location
- s Get speed dial { 0x0016, index(1-9) }
- r Get speed dial OK { 0x0017, mem.type, location }
- where mem.type: 0x02: ME (== 0 if not stored)
- 0x03: SIM
- location: memory location (== 0 if not stored)
- r Get speed dial error { 0x0018 }
- s Set speed dial { 0x0019, index(1-9), mem.type, location }
- r Set speed dial OK { 0x001a }
- r Set speed dial error { 0x001b }
-0x04: Phone Status
- s Phone status { 0x0001 }
- r Phone status { 0x0002, mode, signal str, ???, pwr, batt.level }
- where mode: 1: registered within the network
- 2: call in progress
- 3: waiting for pin
- 4: powered off
- pwr: 1: AC/DC
- 2: battery
- s Request Phone ID { 0x0003 }
- r RequestPhone ID { 0x0004, 0x01, "imei", 0, "model", 0, "prod.code", 0, "HW", 0, "firmware", 0x00, 0x01 }
-0x05: Profile settings
- s Set profile feature { 0x0010, 1, nr, feature, a, 1 }
- where nr: see 0x05/0x0013
- feature: see 0x05/0x0014
- a: see 0x05/0x0014
- r Set profile feat. OK { 0x0011, 1 }
- s Get profile feature { 0x0013, 1, nr, feature, 1 }
- where nr is profile number (general=0, silent, meeting, outdoor, pager, car, headset=6)
- feature: see 0x05/0x0014
- r Get profile feature { 0x0014, 1, nr, feature, 4, a, b, c, d, 1 }
-
- Note: For Nokia 3330 settings num 0x00 .. 0x09 can be assigned
- separately to each profile (0x00 .. 0x05), but rest are common
- to all profiles.
-
- Features and answers (in a, b, c, d form):
- 0x00: keypad notes (in Nokia 33x0 feature 0x00)
- xx, 1, 0, 2
- xx: 0xff: off
- 0x00: level 1
- 0x01: level 2
- 0x02: level 3
- 0x01: lights (? only in car profile) (what number in Nokia 3310 ?)
- xx, 0, 0, 1
- xx: 0x00: off
- 0x??: on (maybe 0x01)
- 0x02: incoming call alert (in Nokia 33x0 feature 0x01)
- xx, 1, 0, 7
- xx: 1: ringing,
- 2: beep once,
- 3: unknown
- 4: off
- 5: ring once
- 6: ascending
- 7: caller groups (see feature #0x08)
- 0x03: ringing tone (in Nokia 33x0 feature 0x02)
- xx, 0, 0, 0
- xx: 0x12: ring ring
- 0x13: low
- etc
- 0x04: ringing volume (in Nokia 33x0 feature 0x03)
- xx, 0, 0, 0
- xx: level 1 (0x06) - level 5 (0x0a)
- 0x05: message alert tone (in Nokia 33x0 feature 0x04)
- xx, 1, 0, 4
- xx: 0: no tone
- 1: standard
- 2: special
- 3: beep once
- 4: ascending
- 0x06: vibration (in Nokia 33x0 feature 0x05)
- xx: 0: off
- 1: on
- 2: Vibrate first
- 0x07: warning and game tones (in Nokia 33x0 feature 0x06 called warning tones)
- xx, 4, 0, 4
- xx: 0xff: off
- 0x04: on
- 0x07: screen saver - Nokia 33x0
- xx: 1: on
- 0: off
- 0x08: incoming caller groups (what number in Nokia 3310 ?)
- xx, 0, 0, 0
- xx: 1: family
- 2: VIP
- 4: friends
- 8: collegues
- 16: other
- 0x08: Screen saver -> Timeout (Nokia 33xx):
- 0x00 = 5 sec
- 0x01 = 20 sec
- ....
-
- 0x09: automatic answer (what number in Nokia 3310 ?)
- xx, 0, 0, 1
- xx: 0x00: off
- 0x01: on
-
- 0x09: Screen saver -> Screen saver (Nokia 33xx):
- 0x00 ... 0x0d = Number of picture image
-
- 0x0a: ???:
- ...: ???:
- 0x15: ???: Read only?
-
- 0x16: ???:
- 0x00 = ???
- 0x01 = ???
-
- 0x17: Phone book -> Options -> Memory in use (Nokia 3330):
- 0x00 = Phone
- 0x01 = SIM card
-
- 0x18: Settings -> Phone settings -> Network selection (Nokia 3330):
- 0x00 = Automatic
- 0x01 = Manual
-
- 0x19 Settings -> Call settings -> Automatic redial(Nokia 3330):
- 0x00 = Off
- 0x01 = On
-
- 0x1a: Settings -> Call settings -> Speed dialling (Nokia 3330):
- 0x00 = Off
- 0x01 = On
-
- 0x1b: Settings -> Call settings -> Own number sending (Nokia 3330):
- 0x00 = Set by network
- 0x01 = On
- 0x02 = Off
-
- 0x1c: Settings -> Phone settings -> Cell info display (Nokia 3330):
- 0x00 = Off
-
- 0x1d: Phone book -> Options -> Type of view (Nokia 3330):
- 0x00 = Name list
- 0x01 = Name, number
- 0x02 = Large font
-
- 0x1e: Settings -> Phone settings -> Language (Nokia 3330):
- 0x00 = English
- 0x07 = Dansk
- 0x08 = Svenska
- 0x09 = Suomi
- 0x0c = Turcke
- 0x0e = Norsk
- 0x10 = Automatic
-
- 0x32 = Reboots ME (3330)
-
- 0x1f: ???: Read only? (3330)
-
- 0x20: Messages -> Message settings -> Common -> Reply via same centre (N3330):
- 0x00 = No
- 0x01 = Yes
-
- 0x21: Messages -> Message settings -> Common -> Delivery reports (3330):
- 0x00 = No
- 0x01 = Yes
-
- 0x22: Clock -> Clock settings -> Show/Hide clock (3330):
- 0x00 = Show
- 0x01 = Hide
-
- 0x23: Clock -> Clock settings -> Time format (N3330):
- 0x00 = 24-hour
- 0x01 = 12-hour
-
- 0x24: Select profile (N3330):
- 0x00 = General
- 0x01 ... 0x05 = rest of them
-
- 0x25: ???: Read only? (N3330)
-
- 0x26: Settings -> Phone settings -> Confirm SIM service actions (N3330):
- 0x00 = Not asked
- 0x01 = Asked
-
- 0x27: Messages -> Write messages -> Options -> Dictionary (N3330):
- 0x00 = Off
- 0x01 = English
- 0x0a = Suomi
-
- 0x28: Messages -> Message settings -> Common -> Character support (N3330):
- 0x00 = Automatic
- 0x01 = GSM alphabet
- 0x02 = Unicode
-
- 0x29: Startup logo settings (N33x0):
- 0x00 = Your own uploaded logo
- 0x01 = Nokia
- 0x02 = Draft HUMAN technology(tm)
- 0x03 = Itineris
-
- 0x2a:???: 0x00 = ??? 0x01 = ??? (N3330)
-
- 0x2b: ???: 0x00 = ??? 0x01 = ??? (N3330)
-
- 0x2c: ???: Read only? (N3330)
-
- 0x2d: Clock -> Auto update of date and time (N3330):
- 0x00 = Off
- 0x01 = Confirm first
- 0x02 = On
-
- s Get welcome message { 0x0016 }
- r Get welcome message { 0x0017, no.of blocks, { block } * }
- where block: { id, {blockspecific} }
- id: 1: startup logo { y, x, picture (coding?) }
- 2: welcome note { len, "message" }
- 3: operator msg { len, "message" }
- s Set welcome message { 0x0018, no.of blocks, { block } * }
- where block: see 0x05/0x0017
- r Set welcome OK { 0x0019, 0x01 }
- s Get profile name { 0x001a, nr }
- where nr: see 0x05/0x0013
- r Profile name { 0x001b, 1, 1, 3, flen, nr, len, {text} }
- where nr: see 0x05/0x0013
- len: text length
- flen len + len(nr, len) = len + 2
- Note: in Nokia 3310 name is in Unicode
- s ??? { 0x001c }
- r ??? { 0x001d, 0x93 }
- s Set oplogo { 0x0030, location, MCC1, MCC2, MNC, lenhi=0x00, lenlo=0x82, OTABitmap }
- r Set oplogo OK { 0x0031 }
- r Set oplogo error { 0x0032, reason }
- where reason: 0x7d invalid location
- s Get oplogo { 0x0033, location }
- where location: 1 (doesn't seem to matter)
- r Get oplogo { 0x0034, location, MCC1, MCC2, MNC, lenhi=0x00, lenlo=0x82, OTABitmap }
- r Get oplogo error { 0x0035, reason }
- where reason: 0x7d invalid location
- s Set ringtone { 0x0036, location,0x00,0x78, ringtone packed according to SM2.0}
- r Set ringtone OK { 0x0037 }
- r Set ringtone error { 0x0038, reason }
- where reason=0x7d, when not supported location
- s Get services settings { 0x0080, setting (2 bytes) }
- where: setting: 0x02,0x00=Nokia access number 1
- 0x02,0x01=Operator access number 1
- 0x01,0x00=Personal bookmark 1 settings (name only ?)
- 0x01,0x01=?
- 0x02,0x02=?
- r Get services sett.OK { 0x0081, .... }
- r Get services sett.err { 0x0082, 0x7b }
-0x06: Calling line restriction/Call forwarding etc
+\r
+Last update 23.02.2002\r
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+\r
+Assembled by\r
+ Balazs Nagy (js@lsc.hu)\r
+ Harri Yli-Torkko (hyt@surfeu.fi)\r
+ Alfred R. Nurnberger <arnu@flosys.com>\r
+ Hugh Blemings <Hugh.Blemings@vsb.com.au>\r
+ Mike Bradley <mike@trumpington.st>\r
+ Odinokov Serge <serge@takas.lt>\r
+ Pavel Janik <Pavel@Janik.cz>\r
+ BORBELY Zoltan (bozo@andrews.hu)
+ Pawel Kot <pkot@linuxnews.pl>\r
+ Marcin Wiacek (Marcin-Wiacek@TOPNET.PL)\r
+ ... 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/PCN Nokia 6110 and derivatives (Nokia 6130, 6150, 6190, 5110, 5130, 5150,\r
+5190, 3210, 3310)\r
+Correct format is FBUS version 2/Direct IRDA/MBUS version 2\r
+(see nokia.txt for protocol details):\r
+\r
+ List:\r
+\r
+0x00: Monitoring values\r
+ r monitoring value {+0x01, 0x01, block... }\r
+ where block: 0x5e, 0x05, 0x7a(?), 0xd0(?), 0x85(?), 0x02, percentHI, percentLO\r
+ Battery percent level\r
+ 0x5e, 0x0c, 0x52(?), 0x4b(?), 0x6f(?), 0x02, voltageHI, voltageLO\r
+ Battery standby voltage\r
+ ............\r
+0x01: Call Information\r
+ s Make call { 0x0001, "number", type, block }\r
+ where type:\r
+ 0x01 - data call\r
+ 0x05 - voice call\r
+ block:\r
+ data call (non digital lines):\r
+ 0x02,0x01,0x05,0x81,0x01,0x00,0x00,0x01,0x02,0x0a,\r
+ 0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00\r
+ data call (digital lines):\r
+ 0x02,0x01,0x05,0x81,0x01,0x00,0x00,0x01,0x02,0x0a,\r
+ 0x07,0xa1,0x88,0x89,0x21,0x15,0x63,0xa0,0x00,0x06,\r
+ 0x88,0x90,0x21,0x48,0x40,0xbb\r
+ voice call:\r
+ 0x01, 0x01, 0x05, 0x81/0x00, sendnum, 0x00, 0x00, 0x01\r
+ where:\r
+ sendnum (own number sending):\r
+ 0x01: preset (depends on network)\r
+ 0x03: on\r
+ 0x02: off\r
+ r Call going 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
+ s Answer call part 2 { 0x0006, seqnr, 0x00 }\r
+ r answered call { 0x0007, seqnr }\r
+ s Hang up { 0x0008, seqnr, 0x85 }\r
+ r terminated call { 0x0009, seqnr }\r
+ r call msg { 0x000a, seqnr }\r
+ r call held { 0x0023, seqnr, 0x01 }\r
+ r call resumed { 0x0025, seqnr, 0x01 }\r
+ r Send DTMF/voice call { 0x0040}\r
+ s Answer call part 1 { 0x0042,0x05,0x01,0x07,0xa2,0x88,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,\r
+ 0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80 }\r
+ s Sent after issuing { 0x0042,0x05,0x81,0x07,0xa1,0x88,0x89,0x21,0x15,0x63,0xa0,0x00,0x06,\r
+ data call 0x88,0x90,0x21,0x48,0x40,0xbb,0x07,0xa3,\r
+ (digital lines) 0xb8,0x81,0x20,0x15,0x63,0x80 }\r
+ s Sent after issuing { 0x0042,0x05,0x01,0x07,0xa2,0xc8,0x81,0x21,0x15,0x63,0xa8,0x00,0x00,\r
+ data call 0x07,0xa3,0xb8,0x81,0x20,0x15,0x63,0x80,\r
+ (non digital lines) 0x01,0x60 }\r
+ s Send DTMF { 0x0050, length, {ascii codes for DTMF}, 0x01 }\r
+ \r
+ Note:\r
+ to make data call (non digital lines):\r
+ 1.send "Make call" for non digital lines\r
+ 2.send "Sent after issuing data call (non digital lines)"\r
+ to make data call (digital lines):\r
+ 1.send "Answer call part 1"\r
+ 2.send "Sent after issuing data call (digital lines)"\r
+ 3.send "Make call" for digital lines\r
+ to answer call:\r
+ 1.send "Answer call part 1"\r
+ 2.send "Answer call part 2"\r
+\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 Get SMS message { 0x0007, 0x02, location, 0x01, 0x64 }\r
+ s Initiate connection { 0x000d, 0x00, 0x00, 0x02 }\r
+ r Initiate ACK { 0x000e, 0x01 }\r
+ r SMS message received { 0x0010, ...... } (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? ,0?, format,\r
+ validity, {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: 0x0b: 1 hour\r
+ 0x47: 6 hours\r
+ 0xa7: 24 hours\r
+ 0xa9: 72 hours\r
+ 0xad: 1 week\r
+ 0xff: 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?, format, 0x00?,\r
+ validity, {DefaultRecipient no.}[12],\r
+ {SMScenter no.}[12], {SMSC name}, 0x00}\r
+ tel.no[12]: {len, type, {number(BCD)}} \r
+ where priority, checksum, type, validity,\r
+ tel.no.[12]: see 0x02/0x0030\r
+ r SMS center error recv { 0x0035, reason }\r
+0x03: Phonebook functions\r
+ s Get mem location { 0x0001, memtype, location, 0 }\r
+ where memory:\r
+ 0x01: telephone and SIM phonebook (in one)\r
+ 0x02: telephone phonebook\r
+ 0x03: SIM phonebook\r
+ 0x04: SIM fixdialling-phonebook (?)\r
+ 0x05: Own numbers\r
+ 0x07: Dialled numbers\r
+ 0x08: Missed calls\r
+ 0x09: Received calls\r
+ 0x0b: voice mailbox (location not important)\r
+ r mem location recvd { 0x0002, 0x00,namelen,"name",numlen,"number",groupID, 0x01?, yearLO, yearHI, month, day, hour, minute, sec. }\r
+ Note: in 3310 all entries have null name ("feature" of bug ?)\r
+ r mem loc error recvd { 0x0003, errtype }\r
+ where errtype: 0x7d: invalid memory type\r
+ s Set mem location { 0x0004, memtype,location,namelen,"Name",numlen,"number",groupID }\r
+ r mem set OK { 0x0005 }\r
+ r mem set error { 0x0006, errtype }\r
+ where errtype: 0x7d: name is too long\r
+ s Mem status request { 0x0007, memtype }\r
+ r Mem status recvd { 0x0008, memtype, free, used }\r
+ r Mem status error recv { 0x0009, errtype }\r
+ where errtype: 0x6f: mem status error\r
+ 0x7d: invalid memory type\r
+ 0x8d: waiting for pin\r
+ s Get caller group data { 0x0010, groupID }\r
+ r Get caller group data { 0x0011, groupID, size, "Name", ringtoneID, graphic_on?1:0, lenHI, lenLO, OTABitmap (72x14 logo) }\r
+ r Get call.group error { 0x0012, reason }\r
+ where reason: 0x7d: invalid location\r
+ s Set caller group data { 0x0013, groupID, size, "Name", ringtoneID, graphic_on?1:0, lenHI, lenLO, OTABitmap (72x14 logo) }\r
+ r Set caller group OK { 0x0014 }\r
+ r Set call.group error { 0x0015, reason }\r
+ where reason: 0x7d: invalid location\r
+ s Get speed dial { 0x0016, index(1-9) }\r
+ r Get speed dial OK { 0x0017, mem.type, location }\r
+ where mem.type: 0x02: ME (== 0 if not stored)\r
+ 0x03: SIM\r
+ location: memory location (== 0 if not stored)\r
+ r Get speed dial error { 0x0018 }\r
+ s Set speed dial { 0x0019, index(1-9), mem.type, location }\r
+ r Set speed dial OK { 0x001a }\r
+ r Set speed dial error { 0x001b }\r
+0x04: Phone Status\r
+ s Phone status { 0x0001 }\r
+ r Phone status { 0x0002, mode, signal str, ???, pwr, batt.level }\r
+ where mode: 1: registered within the network\r
+ 2: call in progress\r
+ 3: waiting for pin\r
+ 4: powered off\r
+ pwr: 1: AC/DC\r
+ 2: battery\r
+ s Request Phone ID { 0x0003 }\r
+ r RequestPhone ID { 0x0004, 0x01,"NOKIA""imei", 0, "model", 0, "prod.code", 0, "HW", 0, "firmware", 0x00, 0x01 }\r
+0x05: Profile settings\r
+ s Set profile feature { 0x0010, 1, nr, feature, a, 1 }\r
+ where nr: see 0x05/0x0013\r
+ feature: see 0x05/0x0014\r
+ a: see 0x05/0x0014\r
+ r Set profile feat. OK { 0x0011, 1 }\r
+ s Get profile feature { 0x0013, 1, nr, feature, 1 }\r
+ where nr is profile number (general=0, silent, meeting, outdoor, pager, car, headset=6)\r
+ feature: see 0x05/0x0014\r
+ r Get profile feature { 0x0014, 1, nr, feature, 4, a, b, c, d, 1 }\r
+\r
+ Note: For Nokia 3330 settings num 0x00 .. 0x09 can be assigned\r
+ separately to each profile (0x00 .. 0x05), but rest are common\r
+ to all profiles.\r
+\r
+ Features and answers (in a, b, c, d form):\r
+ 0x00: keypad notes (in Nokia 33x0 feature 0x00)\r
+ xx, 1, 0, 2\r
+ xx: 0xff: off\r
+ 0x00: level 1\r
+ 0x01: level 2\r
+ 0x02: level 3\r
+ 0x01: lights (? only in car profile) (what number in Nokia 3310 ?)\r
+ xx, 0, 0, 1\r
+ xx: 0x00: off\r
+ 0x??: on (maybe 0x01)\r
+ 0x02: incoming call alert (in Nokia 33x0 feature 0x01)\r
+ xx, 1, 0, 7\r
+ xx: 1: ringing,\r
+ 2: beep once,\r
+ 3: unknown\r
+ 4: off\r
+ 5: ring once\r
+ 6: ascending\r
+ 7: caller groups (see feature #0x08)\r
+ 0x03: ringing tone (in Nokia 33x0 feature 0x02)\r
+ xx, 0, 0, 0\r
+ xx: 0x12: ring ring\r
+ 0x13: low\r
+ etc\r
+ 0x04: ringing volume (in Nokia 33x0 feature 0x03)\r
+ xx, 0, 0, 0\r
+ xx: level 1 (0x06) - level 5 (0x0a)\r
+ 0x05: message alert tone (in Nokia 33x0 feature 0x04)\r
+ xx, 1, 0, 4\r
+ xx: 0: no tone\r
+ 1: standard\r
+ 2: special\r
+ 3: beep once\r
+ 4: ascending\r
+ 0x06: vibration (in Nokia 33x0 feature 0x05)\r
+ xx: 0: off\r
+ 1: on\r
+ 2: Vibrate first\r
+ 0x07: warning and game tones (in Nokia 33x0 feature 0x06 called warning tones)\r
+ xx, 4, 0, 4\r
+ xx: 0xff: off\r
+ 0x04: on\r
+ 0x07: screen saver - Nokia 33x0\r
+ xx: 1: on\r
+ 0: off\r
+ 0x08: incoming caller groups (what number in Nokia 3310 ?)\r
+ xx, 0, 0, 0\r
+ xx: 1: family\r
+ 2: VIP\r
+ 4: friends\r
+ 8: collegues\r
+ 16: other\r
+ 0x08: Screen saver -> Timeout (Nokia 33xx):\r
+ 0x00 = 5 sec\r
+ 0x01 = 20 sec\r
+ ....\r
+\r
+ 0x09: automatic answer (what number in Nokia 3310 ?)\r
+ xx, 0, 0, 1\r
+ xx: 0x00: off\r
+ 0x01: on \r
+\r
+ 0x09: Screen saver -> Screen saver (Nokia 33xx):\r
+ 0x00 ... 0x0d = Number of picture image\r
+\r
+ 0x0a: ???:\r
+ ...: ???:\r
+ 0x15: ???: Read only?\r
+\r
+ 0x16: ???:\r
+ 0x00 = ???\r
+ 0x01 = ???\r
+\r
+ 0x17: Phone book -> Options -> Memory in use (Nokia 3330):\r
+ 0x00 = Phone\r
+ 0x01 = SIM card\r
+\r
+ 0x18: Settings -> Phone settings -> Network selection (Nokia 3330):\r
+ 0x00 = Automatic\r
+ 0x01 = Manual\r
+\r
+ 0x19 Settings -> Call settings -> Automatic redial(Nokia 3330):\r
+ 0x00 = Off\r
+ 0x01 = On\r
+\r
+ 0x1a: Settings -> Call settings -> Speed dialling (Nokia 3330):\r
+ 0x00 = Off\r
+ 0x01 = On\r
+\r
+ 0x1b: Settings -> Call settings -> Own number sending (Nokia 3330):\r
+ 0x00 = Set by network\r
+ 0x01 = On\r
+ 0x02 = Off\r
+\r
+ 0x1c: Settings -> Phone settings -> Cell info display (Nokia 3330):\r
+ 0x00 = Off\r
+\r
+ 0x1d: Phone book -> Options -> Type of view (Nokia 3330):\r
+ 0x00 = Name list\r
+ 0x01 = Name, number\r
+ 0x02 = Large font\r
+\r
+ 0x1e: Settings -> Phone settings -> Language (Nokia 3330):\r
+ 0x00 = English\r
+ 0x07 = Dansk\r
+ 0x08 = Svenska\r
+ 0x09 = Suomi\r
+ 0x0c = Turcke\r
+ 0x0e = Norsk\r
+ 0x10 = Automatic\r
+\r
+ 0x32 = Reboots ME (3330)\r
+\r
+ 0x1f: ???: Read only? (3330)\r
+\r
+ 0x20: Messages -> Message settings -> Common -> Reply via same centre (N3330):\r
+ 0x00 = No\r
+ 0x01 = Yes\r
+\r
+ 0x21: Messages -> Message settings -> Common -> Delivery reports (3330):\r
+ 0x00 = No\r
+ 0x01 = Yes\r
+ \r
+ 0x22: Clock -> Clock settings -> Show/Hide clock (3330):\r
+ 0x00 = Show\r
+ 0x01 = Hide\r
+\r
+ 0x23: Clock -> Clock settings -> Time format (N3330):\r
+ 0x00 = 24-hour\r
+ 0x01 = 12-hour\r
+\r
+ 0x24: Select profile (N3330):\r
+ 0x00 = General\r
+ 0x01 ... 0x05 = rest of them\r
+\r
+ 0x25: ???: Read only? (N3330)\r
+\r
+ 0x26: Settings -> Phone settings -> Confirm SIM service actions (N3330):\r
+ 0x00 = Not asked\r
+ 0x01 = Asked\r
+\r
+ 0x27: Messages -> Write messages -> Options -> Dictionary (N3330):\r
+ 0x00 = Off\r
+ 0x01 = English\r
+ 0x0a = Suomi\r
+\r
+ 0x28: Messages -> Message settings -> Common -> Character support (N3330):\r
+ 0x00 = Automatic\r
+ 0x01 = GSM alphabet\r
+ 0x02 = Unicode\r
+\r
+ 0x29: Startup logo settings (N33x0):\r
+ 0x00 = Your own uploaded logo\r
+ 0x01 = Nokia\r
+ 0x02 = Draft HUMAN technology(tm)\r
+ 0x03 = Itineris\r
+\r
+ 0x2a:???: 0x00 = ??? 0x01 = ??? (N3330)\r
+\r
+ 0x2b: ???: 0x00 = ??? 0x01 = ??? (N3330)\r
+\r
+ 0x2c: ???: Read only? (N3330)\r
+\r
+ 0x2d: Clock -> Auto update of date and time (N3330):\r
+ 0x00 = Off\r
+ 0x01 = Confirm first\r
+ 0x02 = On\r
+\r
+ s Get welcome message { 0x0016 }\r
+ r Get welcome message { 0x0017, no.of blocks, { block } * }\r
+ where block: { id, {blockspecific} }\r
+ id: 1: startup logo { y, x, picture (coding?) }\r
+ 2: welcome note { len, "message" }\r
+ 3: operator msg { len, "message" }\r
+ s Set welcome message { 0x0018, no.of blocks, { block } * }\r
+ where block: see 0x05/0x0017\r
+ r Set welcome OK { 0x0019, 0x01 }\r
+ s Get profile name { 0x001a, nr }\r
+ where nr: see 0x05/0x0013\r
+ r Profile name { 0x001b, 1, 1, 3, flen, nr, len, {text} }\r
+ where nr: see 0x05/0x0013\r
+ len: text length \r
+ flen len + len(nr, len) = len + 2\r
+ Note: in Nokia 3310 name is in Unicode\r
+ s ??? { 0x001c }\r
+ r ??? { 0x001d, 0x93 }\r
+ s Set oplogo { 0x0030, location, MCC1, MCC2, MNC, lenhi=0x00, lenlo=0x82, OTABitmap }\r
+ r Set oplogo OK { 0x0031 }\r
+ r Set oplogo error { 0x0032, reason }\r
+ where reason: 0x7d invalid location\r
+ s Get oplogo { 0x0033, location }\r
+ where location: 1 (doesn't seem to matter)\r
+ r Get oplogo { 0x0034, location, MCC1, MCC2, MNC, lenhi=0x00, lenlo=0x82, OTABitmap }\r
+ r Get oplogo error { 0x0035, reason }\r
+ where reason: 0x7d invalid location\r
+ s Set ringtone { 0x0036, location,0x00,0x78, ringtone packed according to SM2.0}\r
+ r Set ringtone OK { 0x0037 }\r
+ r Set ringtone error { 0x0038, reason }\r
+ where reason=0x7d, when not supported location\r
+ s Get services settings { 0x0080, setting (2 bytes) }\r
+ where: setting: 0x02,0x00=Nokia access number 1\r
+ 0x02,0x01=Operator access number 1\r
+ 0x01,0x00=Personal bookmark 1 settings (name only ?)\r
+ 0x01,0x01=?\r
+ 0x02,0x02=?\r
+ r Get services sett.OK { 0x0081, .... }\r
+ r Get services sett.err { 0x0082, 0x7b }\r
+0x06: Calling line restriction/Call forwarding etc\r
r Get call divert { 0x0001, 0x02, x, 0x00, divtype, 0x02, calltype, y, z, 0x0b, number, 0x00...0x00, timeout (byte 45) }
s Set call divert { 0x0001, 0x03, 0x00, divtype, calltype, 0x01, number(packed like in SMS), 0x00 ... 0x00,
length of number (byte 29), 0x00 ... 0x00, timeout (byte 52), 0x00, 0x00, 0x00}
- NOTE: msglen=0x37
- where timeout:
- 0x00: not set ?
- 0x05: 5 second
- 0x0a: 10 second
- 0x0f: 15 second
- 0x1e: 20 second
- 0x14: 25 second
- 0x19: 30 second
- where divtype:
- 0x02: all diverts for all call types ?
- Found only, when deactivate all diverts for all call types (with call type 0x00)
- 0x15: all calls
- 0x43: when busy
- 0x3d: when not answered
- 0x3e: if not reached
- calltype:
- 0x00: all calls (data, voice, fax)
- 0x0b: voice calls
- 0x0d: fax calla
- 0x19: data calls
- s Deactivate calldiverts{ 0x0001, 0x04, 0x00, divtype, calltype, 0x00 }
- where divtype, calltype: see above
- s Get call diverts { 0x0001, 0x05, 0x00, divtype, calltype, 0x00 }
- where divtype, calltype: see above
- r Get prepaid(?) info { 0x0005, ?,?,?,length,message(packed like in 7bit SMS)}
-0x07:
- s ??? { 0x0022, ? (1&2 sounds OK) }
- r ??? OK { 0x0023, ?,?,? }
- r ??? error { 0x0024, reason }
- s ??? { 0x0025, ??? }
- r ??? OK { 0x0026, ??? }
- r ??? error { 0x0027, reason }
-0x08: Security codes
- s Change code { 0x0004, code, "current", 0x00, "new", 0x00 }
- where code: 1: security code (5 chars)
- 2: PIN (4 chars)
- 3: PIN2 (4 chars)
- 4: PUK (8 chars)
- 5: PUK2 (8 chars)
- s Status request { 0x0007, 0x01 }
- r pin recvd { 0x0008, accepted }
- where accepted: 0x0c (or 0x06): OK
- code: waiting for (0x08/0x0004) code
- s entering code { 0x000a, code, "code", 0x00 }
- where code: see 0x08/0x0004
-0x09: SIM login
- r login { 0x0080 }
- r logout { 0x0081 }
-0x0a: Network status
- s Key duplication on/off{ 0x0044, on? 0x01: 0x02 }
- s get used network { 0x0070 }
- r network registration { 0x0071, ?,?,?,length,netstatus,netsel,cellIDH,cellIDL,lacH,lacL,netcode,netcode,netcode }
-0x0c: Keys
- s Get key assignments { 0x0040, 0x01 }
- r Get key assignments { 0x0041, {key '1'}, 0x00, {key '2'} ... {key '0'}, 0,0,0, {symbols}, 0 }
- where {key '0'} => ' ', '0'
- s Press key { 0x0042, press: 0x01; release: 0x02, button, 0x01 }
- where button: 0x01 - 0x09: 1-9
- 0x0a: 0
- 0x0b: #
- 0x0c: *
- 0x0d: Power
- 0x0e: Pick up phone
- 0x0f: Hang
- 0x10: Volume +
- 0x11: Volume -
- 0x17: Up
- 0x18: Down
- 0x19: Menu
- 0x1a: Names
- 0x1B onwards: don't know but they do produce
- a beep and light up the keypad as if
- a key had been pressed.
- r Press key ack { 0x0043, press/release/error(0x05) }
- s ??? { 0x0044 }
- r ??? ack { 0x0045, 0x01 }
-0x0d: Status
- r Display { 0x0050, 0x01, y, x, len, "string"(unicode) }
- s Status request { 0x0051 }
- r Status { 0x0052, no. of byte pairs, {byte pair} }
- where {byte pair}: {cmd, 1:off 2:on}
- cmd: 1: call in progress
- 2: ???
- 3: have unread sms
- 4: voice call active
- 5: fax call active
- 6: data call active
- 7: key lock active
- 8: is SMS storage full
- s Display status { 0x0053, 1:on 2:off }
- (will send displayed messages with x,y coordinates)
- r Display status ack { 0x0054, 1 }
-0x11: Phone clock & alarm
- 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 }
-0x12: Connect to NBS port (61xx only ?)
- s Send {+0x0c, 0x01, UDH header, data}
- (without 0,1 header -- for oplogo, cli, ringtone etc upload)
- where: UDH header = 0x06, 0x05, 0x04,destporth,destportl,srcporth,srcportl
-0x13: Calendar notes
- s Write calendar note { 0x0064, 0x01, 0x10, length, type, yearH, yearL, month, day, hour, timezone,
- alarm?(alarm yearH, yearL, month, day, hour, timezone): (0,0,0,0,0,0),
- textlen, "text" }
- r Write cal.note report { 0x0065, return }
- where return: 0x01: ok
- 0x73: failure
- 0x81: calendar functions busy. Exit Calendar menu and try again
- s Calendar notes set { 0x0066... }
- r Calendar note recvd { 0x0067, 0x01, ?, length, type, yrH,yrL,mon,day,hr,tz,alrm yrH,yrL,mon,day,hr,tz,textlen, "text" }
- r Cal.note recvd error { 0x0067, err }
- where err: 0x93: not available
- (0x01: OK)
- other: error
- s Delete cal.note { 0x0068, location }
- r Del. cal.note report { 0x0069, err }
- where err: 0x01: OK
- 0x93: cannot delete
-0x14: SMS funcs
- s Write SMS to SIM { 0x0004, .... }
- s Mark SMS as read { 0x0007, 0x02, location, 0x00, 0x64 }
- r SMS message frame rcv { 0x0008,subtype,?,num,?,BCD(smscenter)...} 20->type, 22->status
- where type: 0x06: delivery report
- status: 0x00: delivered
- 0x30: pending
- 0x46: failed
- 0x09: reading failed
- subtype: 0x02: invalid mem type
- 0x07: empty SMS location
- 0x0c: no access to memory (no PIN in card, etc.)
- s Delete SMS message { 0x000a, 0x02, location }
- r Delete OK { 0x000b }
- s SMS status request { 0x0036, 0x64 }
- r SMS status { 0x0037,?,?,?,?,?,?,msgnumber,unread }
- r SMS status error { 0x0038 }
-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 ;(
-
-? 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
- 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 ??? {+0x00, 0x00, 0x07, 0x11, 0x00, 0x10, 0x00, 0x00}
- This frame hangs phone (N3310 4.02). Meaning unknown !
+ NOTE: msglen=0x37\r
+ where timeout:\r
+ 0x00: not set ?\r
+ 0x05: 5 second\r
+ 0x0a: 10 second\r
+ 0x0f: 15 second\r
+ 0x14: 20 second\r
+ 0x19: 25 second\r
+ 0x1e: 30 second\r
+ where divtype:\r
+ 0x02: all diverts for all call types ?\r
+ Found only, when deactivate all diverts for all call types (with call type 0x00)\r
+ 0x15: all calls\r
+ 0x43: when busy\r
+ 0x3d: when not answered\r
+ 0x3e: if not reached\r
+ calltype:\r
+ 0x00: all calls (data, voice, fax)\r
+ 0x0b: voice calls\r
+ 0x0d: fax calla\r
+ 0x19: data calls\r
+ s Deactivate calldiverts{ 0x0001, 0x04, 0x00, divtype, calltype, 0x00 }\r
+ where divtype, calltype: see above\r
+ s Get call diverts { 0x0001, 0x05, 0x00, divtype, calltype, 0x00 }\r
+ where divtype, calltype: see above\r
+ r Get prepaid(?) info { 0x0005, ?,?,?,length,message(packed like in 7bit SMS)}\r
+0x07:\r
+ s ??? { 0x0022, ? (1&2 sounds OK) }\r
+ r ??? OK { 0x0023, ?,?,? }\r
+ r ??? error { 0x0024, reason }\r
+ s ??? { 0x0025, ??? }\r
+ r ??? OK { 0x0026, ??? }\r
+ r ??? error { 0x0027, reason }\r
+0x08: Security codes\r
+ s Change code { 0x0004, code, "current", 0x00, "new", 0x00 }\r
+ where code: 1: security code (5 chars)\r
+ 2: PIN (4 chars)\r
+ 3: PIN2 (4 chars)\r
+ 4: PUK (8 chars)\r
+ 5: PUK2 (8 chars)\r
+ s Status request { 0x0007, 0x01 }\r
+ r pin recvd { 0x0008, accepted }\r
+ where accepted: 0x0c (or 0x06): OK\r
+ code: waiting for (0x08/0x0004) code\r
+ s entering code { 0x000a, code, "code", 0x00 }\r
+ where code: see 0x08/0x0004\r
+0x09: SIM login\r
+ r login { 0x0080 }\r
+ r logout { 0x0081 }\r
+0x0a: Network status\r
+ s Key duplication on/off{ 0x0044, on? 0x01: 0x02 }\r
+ s get used network { 0x0070 }\r
+ r network registration { 0x0071, ?,?,?,length,netstatus,netsel,cellIDH,cellIDL,lacH,lacL,netcode,netcode,netcode }\r
+0x0c: Keys\r
+ s Get key assignments { 0x0040, 0x01 }\r
+ r Get key assignments { 0x0041, {key '1'}, 0x00, {key '2'} ... {key '0'}, 0,0,0, {symbols}, 0 }\r
+ where {key '0'} => ' ', '0'\r
+ s Press key { 0x0042, press: 0x01; release: 0x02, button, 0x01 }\r
+ where button: 0x01 - 0x09: 1-9\r
+ 0x0a: 0\r
+ 0x0b: #\r
+ 0x0c: *\r
+ 0x0d: Power\r
+ 0x0e: Pick up phone\r
+ 0x0f: Hang\r
+ 0x10: Volume +\r
+ 0x11: Volume -\r
+ 0x17: Up\r
+ 0x18: Down\r
+ 0x19: Menu\r
+ 0x1a: Names\r
+ 0x1B onwards: don't know but they do produce\r
+ a beep and light up the keypad as if\r
+ a key had been pressed. \r
+ r Press key ack { 0x0043, press/release/error(0x05) }\r
+ s ??? { 0x0044 }\r
+ r ??? ack { 0x0045, 0x01 }\r
+0x0d: Status\r
+ r Display { 0x0050, 0x01, y, x, len, "string"(unicode) }\r
+ s Status request { 0x0051 }\r
+ r Status { 0x0052, no. of byte pairs, {byte pair} }\r
+ where {byte pair}: {cmd, 1:off 2:on}\r
+ cmd: 1: call in progress\r
+ 2: ???\r
+ 3: have unread sms\r
+ 4: voice call active\r
+ 5: fax call active\r
+ 6: data call active\r
+ 7: key lock active\r
+ 8: is SMS storage full\r
+ s Display status { 0x0053, 1:on 2:off }\r
+ (will send displayed messages with x,y coordinates)\r
+ r Display status ack { 0x0054, 1 }\r
+0x11: Phone clock & alarm\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
+0x12: Connect to NBS port (61xx only ?)\r
+ s Send {+0x0c, 0x01, UDH header, data}\r
+ (without 0,1 header -- for oplogo, cli, ringtone etc upload)\r
+ where: UDH header = 0x06, 0x05, 0x04,destporth,destportl,srcporth,srcportl\r
+0x13: Calendar notes\r
+ s Write calendar note { 0x0064, 0x01, 0x10, length, type, yearH, yearL, month, day, hour, timezone,\r
+ alarm?(alarm yearH, yearL, month, day, hour, timezone): (0,0,0,0,0,0),\r
+ textlen, "text" }\r
+ r Write cal.note report { 0x0065, return }\r
+ where return: 0x01: ok\r
+ 0x73: failure\r
+ 0x81: calendar functions busy. Exit Calendar menu and try again\r
+ s Calendar notes set { 0x0066... }\r
+ r Calendar note recvd { 0x0067, 0x01, ?, length, type, yrH,yrL,mon,day,hr,tz,alrm yrH,yrL,mon,day,hr,tz,textlen, "text" }\r
+ r Cal.note recvd error { 0x0067, err }\r
+ where err: 0x93: not available\r
+ (0x01: OK)\r
+ other: error\r
+ s Delete cal.note { 0x0068, location }\r
+ r Del. cal.note report { 0x0069, err }\r
+ where err: 0x01: OK\r
+ 0x93: cannot delete\r
+0x14: SMS funcs\r
+ s Write SMS to SIM { 0x0004, .... }\r
+ s Mark SMS as read { 0x0007, 0x02, location, 0x00, 0x64 }\r
+ r SMS message frame rcv { 0x0008,subtype,?,num,?,BCD(smscenter)...} 20->type, 22->status\r
+ where type: 0x06: delivery report \r
+ status: 0x00: delivered\r
+ 0x30: pending\r
+ 0x46: failed\r
+ 0x09: reading failed\r
+ subtype: 0x02: invalid mem type\r
+ 0x07: empty SMS location\r
+ 0x0c: no access to memory (no PIN in card, etc.)\r
+ s Delete SMS message { 0x000a, 0x02, location }\r
+ r Delete OK { 0x000b }\r
+ s SMS status request { 0x0036, 0x64 }\r
+ r SMS status { 0x0037,?,?,?,?,?,?,msgnumber,unread }\r
+ r SMS status error { 0x0038 }\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
+\r
+? 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\r
+ frame: type, service number len/IP len,service num (Unicode)/IP (Unicode),service code len,\r
+ service code (Unicode)\r
+ where type: 0x01 - service number, 0x00 - IP\r
+ r Get WAP settings 2 err{ 0x001d,error}\r
+ where: error=0x05 \r
+0x40: Security commands\r
+ s ??? {+0x00, 0x00, 0x07, 0x11, 0x00, 0x10, 0x00, 0x00}\r
+ This frame hangs phone (N3310 4.02). Meaning unknown !\r
s Open simlock 1 { 0x02, 0x03, 0x1f, 0x11, 0x01, 0x01, 0x10, 0x00}
r Open simlock 1 { 0x02 }
- s ???(N6150) { 0x08, 0x00 }
- r ???(N6150) { 0x08 }
- s Enable extended cmds { 0x64, cmd }
- where cmd: 0x00: off
- 0x01: on
+ s ???(N6150) { 0x08, 0x00 }\r
+ r ???(N6150) { 0x08 }\r
+ s Enable extended cmds { 0x64, cmd }\r
+ where cmd: 0x00: off\r
+ 0x01: on\r
0x02: enter service mode ?
- 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!
+ 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 Reset phone settings { 0x65, value, 0x00 }
where value: 0x08 - reset UI (User Interface) settings
0x38 - reset UI, SCM and call counters
r Reset phone settings { 0x65, 0x00 }
- 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 (only sec.code is allowed)
- r Get code { 0x6e, code, allowed, allowed? (sec code (text)) }
- where code: see 0x08/0x0004
- allowed: 0: no
- 1: yes
+ 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 (only sec.code is allowed)\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 Set code { 0x6f, code, sec code(text), 0x00 }
- where code: see 0x08/0x0004
- s Start monitoring { 0x70, block }
- where block(N6150):
- 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xf9,0x76,0x65,0x20,0x00,
- 0x00,0x00,0x00,0x00,0x18,0x26,0x15,0x7d,0x0a,0x00,
- 0xf5,0x82,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
- 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x77,0x80,
- 0x77,0x80,0xf2,0x82,0x20,0x20,0x20,0x20,0x20,0x20,
- 0x20,0x20,0x20,0x20
- This block enables probably all possible monitorred parameters.
- After it phone sends 0x00 message type values
- s Break monitoring { 0x71 }
- r Break monitoring { 0x71 }
- 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
+ where code: see 0x08/0x0004\r
+ s Start monitoring { 0x70, block }\r
+ where block(N6150):\r
+ 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,\r
+ 0xff,0xff,0xff,0xff,0xff,0xf9,0x76,0x65,0x20,0x00,\r
+ 0x00,0x00,0x00,0x00,0x18,0x26,0x15,0x7d,0x0a,0x00,\r
+ 0xf5,0x82,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,\r
+ 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x77,0x80,\r
+ 0x77,0x80,0xf2,0x82,0x20,0x20,0x20,0x20,0x20,0x20,\r
+ 0x20,0x20,0x20,0x20\r
+ This block enables probably all possible monitorred parameters.\r
+ After it phone sends 0x00 message type values\r
+ s Break monitoring { 0x71 }\r
+ r Break monitoring { 0x71 }\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 Open simlock 2 { 0x81, 0x01, locknumber, 0x10, 0x10, 0x10, 0x10, 0x10 }
Note: sets simlock type to factory?
where locknumber: 1,2,4,8
s Close simlock { 0x82, 0x01, locknumber, 0x00, 0x00, locksinfo(lock1,4,2,3), 0x00 }
where locknumber: 1,2,4,8
r Close simlock { 0x82, the rest like in 0x40/0x8a }
- 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 Set downloaded OpName { 0x8b, 0x00, MCC1, MCC2, MNC, Name, 0x00 }
- r SetdownloadedOpNameOK?{ 0x8b, 0x00, 0x01 }
- s Get downloaded OpName { 0x8c, 0x00 }
- r Get downloaded OpName { 0x8c, 0x00, 0x01, MCC1, MCC2, MNC, Name, 0x00,...}
- 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 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 Set downloaded OpName { 0x8b, 0x00, MCC1, MCC2, MNC, Name, 0x00 }\r
+ r SetdownloadedOpNameOK?{ 0x8b, 0x00, 0x01 }\r
+ s Get downloaded OpName { 0x8c, 0x00 }\r
+ r Get downloaded OpName { 0x8c, 0x00, 0x01, MCC1, MCC2, MNC, Name, 0x00,...}\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 Sleep mode test { 0x92, 0x00, 0x00, howlong(2 bytes), enable }
where: enable == 0x01 - enable after test
0x00 - don't enable after test
howlong (ms) = 0x07, 0xd0 = 2000
- 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, ?}
+ 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
s Get EEPROM { 0xd4, 0x02, 0x00, 0xa0, locationLo, locationHi, numofbytes }
where: numofbytes - how many bytes to read
Note: Works ONLY in MBUS
r Get EEPROM { 0xd4, 0x02, 0x00, 0xa0, locationLo, locationHi, numofbytes, contest... }
where numofbytes - how many bytes available
contest - bytes with contests (if numofbytes != 0)
-0x41: Snake game ?
-0x47:
- s Get Picture Image { 0x0001, location }
- r Get Picture Image when contains sender number
- { 0x0002, location, number(like in SMS), 0x00, len, text, 0x00, width, height, 0x01, bitmap }
- NOTE:
- Supports only 0x81 and 0x91 coding (NOT alphanumeric numbers!)
- in sender without sender number
- { 0x0002, location, 0x00, 0x00, 0x00, len, text, 0x00, width, height, 0x01, bitmap }
- s Set Picture Image { 0x0003, frame...}
- where frame: see 0x47/0x0002
- r Get/Set PictureImageOK{ 0x0004 }
- r Set Picture Image err { 0x0005, error? }
- where error=0x74 - wrong location ?
-0x64:
- s Phone ID request { 0x0010 }
- r Phone ID recvd { 0x0011, "NOKIA", "imei", 0, "model", 0, "prod.code", 0, "HW", 0, "firmware", magic bytes x 4 ... }
- s Accessory connection { 0x0012, 16x0x00, 'NOKIA&NOKIA accessory', 3x0x00 } (45 bytes)
-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." }
-0xda: ? (during playing 2 player snake)
-0xf0:
- s Send RLP frame {+0x00, 0xd9, ... }
-0xf4: Power on message seq 2
+0x41: Snake game ?\r
+0x47:\r
+ s Get Picture Image { 0x0001, location }\r
+ r Get Picture Image when contains sender number\r
+ { 0x0002, location, number(like in SMS), 0x00, len, text, 0x00, width, height, 0x01, bitmap }\r
+ NOTE:\r
+ Supports only 0x81 and 0x91 coding (NOT alphanumeric numbers!)\r
+ in sender without sender number\r
+ { 0x0002, location, 0x00, 0x00, 0x00, len, text, 0x00, width, height, 0x01, bitmap }\r
+ s Set Picture Image { 0x0003, frame...}\r
+ where frame: see 0x47/0x0002\r
+ r Get/Set PictureImageOK{ 0x0004 }\r
+ r Set Picture Image err { 0x0005, error? }\r
+ where error=0x74 - wrong location ?\r
+0x64:\r
+ s Phone ID request { 0x0010 }\r
+ r Phone ID recvd { 0x0011, "NOKIA", "imei", 0, "model", 0, "prod.code", 0, "HW", 0, "firmware", magic bytes x 4 ... }\r
+ s Accessory connection { 0x0012, 16x0x00, 'NOKIA&NOKIA accessory', 3x0x00 } (45 bytes)\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
+0xda: ? (during playing 2 player snake)\r
+0xf0:\r
+ s Send RLP frame {+0x00, 0xd9, ... }\r
+0xf4: Power on message seq 2\r
-
+\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
Port settings:
Speed 9600 bps, Bits 8, ParityOdd, Stop Bits 1, DTR and RTS logic 0
- In the MBUS bus, the phone has only one connector for transmition and
+ In the MBUS bus, the phone has only one connector for transmition and\r
reception.
- Because of this characteristics of the phone connector, every time that the
- PC writes into the phone it is writing as well into its own Rx. So every
- time the PC sends info into the phone it finds that same information in its
- own Rx buffers, like a mirror copy. This should be discarded.
+ Because of this characteristics of the phone connector, every time that the\r
+ PC writes into the phone it is writing as well into its own Rx. So every\r
+ time the PC sends info into the phone it finds that same information in its\r
+ own Rx buffers, like a mirror copy. This should be discarded.\r
- The communications is made like an old cb radio, only one
+ The communications is made like an old cb radio, only one\r
talking at a time. Many transmission are made this way:
<computer sends request>
You should wait for bus to be free for 3 miliseconds before normal
message, and for 2.5 miliseconds before acknowledge. You should wait
for acknowledge for 200 miliseconds, then retransmit.
-
+\r
Frame format for FBUS version 1:
{ FrameID, FrameLength, MsgType, {block}, SeqNo, ChkSum }
Ack:
- { FrameID, DestDEV, SrcDEV, 0x7f, Id_SeqNo, ChkSum }
-
+ { FrameID, DestDEV, SrcDEV, 0x7f, Id_SeqNo, ChkSum }\r
+ \r
where Id_SeqNo: Is the sequence number that you are
- acknowleging (from the other part).
+ acknowleging (from\r the other part).\r
Frame format for Infrared:
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- <meta name="Author" content="Marcin Wiacek">
- <title>Configuration</title>
- <link REL=stylesheet HREF="../styl.css" TYPE="text/css">
-</head>
-<body>
-
-<a NAME="Top"></a>
-<p align="RIGHT"><a class="autoremail" href="../index.htm">Main page</a></p>
-<center><font color="#1F409F" size=+2 class="tytul">Configuration</font></center>
-
-<p><hr size="2" noshade width="60%" align="center" style="color: #004080">
-
-<p><font color="#1F409F" size=+2 class="dzial">How to install it from the source ?</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<p>If you get the sources you need to create script
-<i>configure</i>. You do it by typing:
-<PRE>tfuj:~/gnokii-0.3.3pre5$ autoconf</PRE>
-
-<P>If you get the sources from the tarball you don't need to do
-this - <TT>configure</TT> is already made for you. For quick install do simply:
-<PRE>tfuj:~/gnokii-0.3.3pre5$ ./configure
-tfuj:~/gnokii-0.3.3pre5$ make
-tfuj:~/gnokii-0.3.3pre5$ make install
-</PRE>
-
-<P>But <i>configure</i> has some options. Except obvious
-parameters as <i>--prefix</i> which specifies a path to install GNOKII, you
-can specify one of the following:
-
-<DL>
- <dt><i>--help</i>
- <dd>Shows you list of available options</dd></dl>
-<dl>
- <DT><i>--enable-debug</i>
- <DD>Turns on debugging. It's usefull especially for developers. But if you
- find a bug in GNOKII, please compile the sources with debugging enabled and
- send this output to the GNOKII mailing list. This is used by <i>gnokii</i>
- program. </DD></DL>
-<DL>
- <DT><i>--enable-xdebug</i>
- <DD>The same as above but used by <i>xgnokii</i>. </DD></DL>
-<DL>
- <DT><i>--enable-rlpdebug</i>
- <DD>This option turns on debugging specific to the RLP stuff. Note, that it's
- very important at the moment as this part of GNOKII is under the hardest
- development. </DD></DL>
-<DL>
- <DT><i>--without-x</i>
- <DD>Don't include X Window system support - <i>xgnokii</i>. </DD></DL>
-<DL>
- <DT><i>--enable-security</i>
- <DD>Turns on some security functions:.... Use them with caution. </DD></DL>
-<DL>
- <DT><i>--enable-win32</i>
- <DD>Include MS Windows support. Yes, it really exists. ;-) </DD></DL>
-<DL>
- <DT><i>--with-model=MODEL</i>, <i>--with-port=PORT</i>
- <DD>Specify the model of the phone (eg. 6150) and the port it is connected to
- (eg. /dev/ttyS1). These values can be overwritten with ones from the config
- files.
- </DD>
-</DL>
-
-<P>The sample usage:
-<PRE>tfuj:~/gnokii-0.3.3pre5$ ./configure --prefix=/usr2 --enable-debug --without-x \
---enable-security --with-model=6130 --with-port=/dev/ttyS1
-</PRE>
-
-<P>When the <i>configure</i> succeed, it shows options GNOKII
-will be compiled with:
-<PRE> Host system: linux-gnulibc1
- Gnokii version: 0.3.3_pre5
- Xgnokii version: 20000613
- Phone model: 6130
- Serial port: /dev/ttyS1
- X (GTK) support: no
- Debug: yes
- XDebug: no
- RLPDebug: no
- NLS: yes
- Security: yes
- Win32:
- Prefix: /usr2
-</PRE>
-
-<P>Now, the only thing left to do is just ro run:
-<PRE>tfuj:~/gnokii-0.3.3pre5$ make
-tfuj:~/gnokii-0.3.3pre5$ make install
-</PRE>
-
-<P>Finally, you have GNOKII installed in your system. And now REAL
-FUN begins. :-)
-
-<p><font color="#1F409F" size=+2 class="dzial">How to install it from binaries ?</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<p>If you downloaded gnokii as a pre-built binary you should install
-it in the conventional manner for the package type in question.
-For example if you downloaded a .rpm file you can install it by
-running the following as root.
-
-<p>rpm -i gnokii-0.3.2-i386.rpm
-
-<p>If you are using a Debian based system, you can use dpackage
-to do the installation (FIXME - is this correct ?)
-
-<p><font color="#1F409F" size=+2 class="dzial">How to make connection with phone ?</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<p>There are three ways to make it:
-
-<ul>
-<li>connecting phone with computer using cable. All phones allow to make it
-(even 3210 - connector is inside). If you want to know more
-about creating your own cable, read <a href=../gsm/cables/cables.htm>cables faq</a>.</li>
-<li>using IrDa port in phone and computer. Notice, that your computer
-and phone must have it (only some series of Nokia phones has it - for example,
-6110, 6150)</li>
-<li>connecting to phone special device called "dongle" (it has IrDa port)
-and making IrDa connection between it and phone. Current gnokii cas use
-Tekram IRmate 210 - see patches</li>
-</ul>
-
-<p><font color="#1F409F" size=+2 class="dzial">How to configure gnokii ?</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<p>First it to use <i>--with-model</i> and <i>--with-port</i> options for
-configure script. But I do not recommend this. In my opinion these should be
-removed from configure. Second disadvantage is that you can't use it when
-you are installing a binary package.
-
-<p>So, will use better method :-).
-You should copy the <a href=../examples/gnokiirc>gnokiirc</a>
-file from the Docs/examples directory to your
-home directory and name it gnokiirc or copy it into /etc directory
-and name gnokiirc.
-
-<p>Using your favorite
-editor ensure that the settings are correct for your system,
-the sample file has details of the various options available. The most
-difficult problem could be discovering model of your phone - go into
-our <a href=../gsm/firmware/firmware.htm>firmware page</a>
-and try to use codes written in column
-<b>Firmware version code</b>. If your phone will display something,
-see model number on the third line, look on the
-<a href=../gsm/firmware/firmware.htm>firmware page</a>
-again (for it) and read phone model then.
-
-<p>Note that you will need read/write permissions on whatever
-serial port you specify in gnokiirc. You can now use gnokii
-and xgnokii.
-
-<P>Of course, you don't have to make any config, if you will use
-these config options. There are default:
-
-<p>
-<pre>
-[global]
-port = /dev/ttyS0
-model = 6110
-connection = serial
-initlength = default
-bindir=/usr/local/sbin
-</pre>
-
-<p><font color="#1F409F" size=+2 class="dzial">How to configure infrared connection ?</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<p>
-<ul>
-
-<li>Go into configuration of your IrDa port (the most often it's made in
-BIOS, sometimes using program provided by computer's producer):
-
-<p>
-<ul>
-<li>Enable it</li>
-<li>Setup the COM-Port on which it should work.
-Here are addresses:
-<br>ttyS0 (COM1): 3F8, IRQ: 4
-<br>ttyS1 (COM2): 2F8, IRQ: 3
-<br>ttyS2 (COM3): 3E8, IRQ: 4
-<br>ttyS3 (COM4): 2E8, IRQ: 3
-<br>
-</li>
-</ul>
-</li>
-
-<li>Configure gnokii (see previous question)
-setting type of connection to
-infrared.</li>
-
-<li>If you are using linux, put linux-irda off (you can't use gnokii over infrared and
-linux-irda at the same time - it means too, if you want use
-linux-irda you must close all gnokii-applications what
-use the infrared-port in moment).
-</li>
-</ul>
-
-<p><font color="#1F409F" size=+2 class="dzial">How to configure gnokii driver for data connection ?</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<p>After installing and configuring gnokii you should make another group
-and allow mgnokiidev (it our virtual modem driver)
-to use it. For example (if you have installed gnokii
-into /usr/local):
-
-<p>
-<i>groupadd gnokii<br>
-chown root:gnokii /usr/local/sbin/mgnokiidev<br>
-chmod 4750 /usr/local/sbin/mgnokiidev</i>
-
-<p><b>And now connect (FIRST EXAMPLE):</b>
-
-<p>Then connect your phone to your PC and then run gnokiid:
-
-<PRE>[ first console ]
-tfuj:/home/pawel/gnokii# ./gnokiid/gnokiid
-</pre>
-
-<p>If successful, you should see a message saying that mgnokiidev has been
-run to create /dev/gnokii. If you're using a 5110/6110 series phone
-you should hear a beep and see an "accessory connected" message on
-the phone. If you're using a 3810 series phone you won't see anything
-on the phones LCD.
-
-<p>And now:
-
-<p>
-<pre>
-[ second console ]
-[- running minicom -]
-
-[ third console ]
-[- when connection is estabilished -]
-tfuj:/etc/ppp# /usr/sbin/pppd -d -detach /dev/gnokii 115200
-Using interface ppp0
-Connect: ppp0 <--> /dev/gnokii
-sent [LCP ConfReq id=0x1 <MRU 552> <ASYNCMAP 0x0> <MAGIC 0xc5c718fb> <PCOMP> <ACCOMP>]
-rcvd [LCP ConfReq id=0x8e <ASYNCMAP 0xa0000> <MAGIC 0x56292222> <PCOMP> <ACCOMP> < 11 04 05 f4> < 13 0d 01 70 69 65 6b 6e 61 2d 61 73 34>]
-sent [LCP ConfRej id=0x8e < 11 04 05 f4> < 13 0d 01 70 69 65 6b 6e 61 2d 61 73 34>]
-rcvd [LCP ConfNak id=0x1 <MRU 1500>]
-sent [LCP ConfReq id=0x2 <ASYNCMAP 0x0> <MAGIC 0xc5c718fb> <PCOMP> <ACCOMP>]
-rcvd [LCP ConfReq id=0x8f <ASYNCMAP 0xa0000> <MAGIC 0x56292222> <PCOMP> <ACCOMP>]
-sent [LCP ConfAck id=0x8f <ASYNCMAP 0xa0000> <MAGIC 0x56292222> <PCOMP> <ACCOMP>]
-rcvd [LCP ConfAck id=0x2 <ASYNCMAP 0x0> <MAGIC 0xc5c718fb> <PCOMP> <ACCOMP>]
-sent [IPCP ConfReq id=0x1 <ADDR 192.168.1.10> <COMPRESS 01 0f VJ>]
-sent [CCP ConfReq id=0x1 <DEFLATE 15> <DEFLATE(OLD#) 15> <BSD 15 v1>]
-rcvd [IPCP ConfReq id=0x16 <COMPRESS 0f VJ 00> <ADDR 157.25.75.129>]
-sent [IPCP ConfAck id=0x16 <COMPRESS 0f VJ 00> <ADDR 157.25.75.129>]
-rcvd [IPCP ConfNak id=0x1 <ADDR 157.25.94.141>]
-sent [IPCP ConfReq id=0x2 <ADDR 157.25.94.141> <COMPRESS 01 0f VJ>]
-rcvd [LCP ProtRej id=0x90 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
-rcvd [IPCP ConfAck id=0x2 <ADDR 157.25.94.141> <COMPRESS 01 0f VJ>]
-local IP address 157.25.94.141
-remote IP address 157.25.75.129
-Terminating on signal 2.
-sent [LCP TermReq id=0x3 "User request"]
-rcvd [LCP TermAck id=0x3]
-Connection terminated.
-Connect time 5.6 minutes.
-Sent 30568 bytes, received 197133 bytes.
-tfuj:/etc/ppp#
-</PRE>
-
-<p><b>SECOND EXAMPLE (I used such scripts):</b>
-
-<PRE>/home/pawel/.gnokiirc
----------------------
-global]
-port = /dev/ttyS1
-model = 6110
-connection = serial
-initlength = 1
-
-/usr/sbin/ppp-gnokii
---------------------
-#!/bin/sh
-LOCAL_IP=0.0.0.0
-REMOTE_IP=0.0.0.0
-NETMASK=255.255.255.0
-DIALER_SCRIPT=/etc/ppp/ppp-gnokii
-exec /usr/sbin/pppd debug /dev/gnokii 115200 \
-$LOCAL_IP:$REMOTE_IP \
-connect $DIALER_SCRIPT
-
-/etc/ppp/ppp-gnokii
--------------------
-#!/bin/sh
-/usr/sbin/chat -v \
- TIMEOUT 30 \
- ABORT '\nBUSY\r' \
- ABORT '\nNO ANSWER\r' \
- ABORT '\nRINGING\r\n\r\nRINGING\r' \
- ABORT '\nNO CARRIER\r' \
- '' ATDT501808080 \
- CONNECT ''
-
-/etc/ppp/options
-----------------
--detach
-modem
-crtscts
-defaultroute
-asyncmap 0
-mtu 552
-mru 552
-
-/etc/ppp/pap-secrets
---------------------
-ppp * ppp
-</PRE>
-
-<P>Number 501808080 is an Internet access number for all Idea
-Centertel (Polish GSM operator) abonents. With these files the only thing to do
-is to run <i>gnokiid</i> and <i>/usr/sbin/ppp-gnokii</i>. Note that both:
-<i>/usr/sbin/ppp-gnokii</i> and <i>/etc/ppp/ppp-gnokii</i> must be
-executable files. At the moment you have to run <i>ppp-gnokii</i> as the
-superuser unless the simple user has a permission to write to a <I>pty</I>
-device. <i>gnokiid</i> must be run as the user belinging to <I>gnokii</I>
-group.
-
-<PRE>
-[ first console ]
-tfuj:~S /usr/sbin/gnokiid
-Initialising GSM
-Slave pty is /dev/ttyp9, calling /usr/sbin/mgnokiidev to create /dev/gnokii.
-
-[ second console ]
-tfuj:~# /usr/sbin/ppp-gnokii
-Serial connection established.
-Using interface ppp0
-Connect: ppp0 <--> /dev/gnokii
-Warning - secret file /etc/ppp/pap-secrets has world and/or group access
-sent [LCP ConfReq id=0x1 ]
-rcvd [LCP ConfReq id=0xbb ]
-sent [LCP ConfAck id=0xbb ]
-rcvd [LCP ConfNak id=0x1 ]
-sent [LCP ConfReq id=0x2 ]
-rcvd [LCP ConfAck id=0x2 ]
-Warning - secret file /etc/ppp/pap-secrets has world and/or group access
-sent [PAP AuthReq id=0x1 user="ppp" password="ppp"]
-rcvd [PAP AuthAck id=0x1 ""]
-Remote message: ^F
-sent [IPCP ConfReq id=0x1 ]
-sent [CCP ConfReq id=0x1 ]
-rcvd [IPCP ConfReq id=0x49 ]
-sent [IPCP ConfAck id=0x49 ]
-rcvd [IPCP ConfNak id=0x1 ]
-sent [IPCP ConfReq id=0x2 ]
-rcvd [IPCP ConfAck id=0x2 ]
-local IP address 192.168.23.55
-remote IP address 192.168.9.2
-</PRE>
-
-<p><b>THIRD EXAMPLE:</b>
-
-<p>Use /dev/gnokii as a modem:
-
-<p><i>e.g. ppp session<br>
---------------- /etc/ppp/peers/demon-gnokii ---------------------<br>
-/dev/gnokii 115200<br>
-modem crtscts defaultroute<br>
-connect 'chat -v ABORT BUSY ABORT ERROR ABORT "NO CARRIER" "" AT OK-AT-OK ATD02083389666 CONNECT'<br>
-user XXXX.demon.co.uk<br>
-noauth<br>
-mtu 296<br>
-debug<br>
-----------------------------------------------------------------<br>
---------------- /etc/ppp/pap-secrets ---------------------------<br>
-XXXX.demon.co.uk demon-gnokii <yourpassword><br>
-----------------------------------------------------------------<br>
-</i>
-
-<p>Then "pppd call demon-gnokii" should connect
-<br>('tail -f /var/log/messages' to see what is happening)
-
-<p>If a call terminates you should get 'NO CARRIER' and gnokiid should
-continue to work, but this is early code and you may find you have to
-Ctrl-C and restart gnokiid (especially if the phone says the terminal
-connection has been lost)
-
-<p><b>AND ANOTHER EXAMPLE PPP SCRIPT FROM <a href="mailto:wikne@lynx.uio.no">Jon Wikne</a>:</b>
-
-<p>
-<i>
-#!/bin/sh<br>
-#<br>
-# Script to launch PPP over a Nokia 5110 / 6110 mobile phone<br>
-# 20-06-2000 -- Jon Wikne<br>
-#<br>
-### NOTE: "01234567" and "username" below must be replaced<br>
-### with your actual ISP's phone number and your user name.<br>
-#<br>
-### NOTE 2: If you are calling an ISDN number or a digital<br>
-### line you may also need ATS35=0 in the chat sequence.<br>
- <br>
-# Launch gnokiid....<br>
-echo "Launching gnokiid... "<br>
-/usr/local/sbin/gnokiid &<br>
- <br>
-# Wait for gnokiid to find the phone.<br>
-sleep 7<br>
- <br>
-# Now, down to business!<br>
-echo "Calling and starting pppd... "<br>
-pppd /dev/gnokii 115200 debug connect \<br>
-'chat -v ECHO ON ABORT BUSY ABORT ERROR ABORT "NO CARRIER" \<br>
-"" AT OK ATDT01234567 CONNECT ""' \<br>
-noipdefault ipcp-accept-local ipcp-accept-remote \<br>
-user username<br>
- <br>
-# Some cleaning up to do....<br>
-<br>
-echo -n "Stopping gnokiid... "<br>
-ps ax | awk 'BEGIN { prog="/usr/local/sbin/gnokiid"; ARGC=1 } <br>
-{ if (prog == $5) { print $1 ; exit 0 } }' $1<br>
-kill "$1"<br>
-echo $1
-</i>
-
-<p><font color="#1F409F" size=+2 class="dzial">Permission problem...</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<pre>
-> Now xgnokii want to connecting..... and some minutes later it's say:
-> Gnokii serial_open: open: Permission denied
-> Couldn't open FB61 device: Permission denied
-
-you should set your /dev/ttySx to:
-
-crw-rw---- 1 root dialout 4, 65 Jul 5 2000 /dev/ttyS1
-
-and add yourself to the group dialout. or make a new group gnokii
-and do the same thing for this group. see the gnokii doc about
-this, especialy if you want to use gnokiid.
-</pre>
-
-<p><font color="#1F409F" size=+2 class="dzial">Xgnokii files missed...</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<pre>
-> > I start to configure:
-> >
-> > elwinx:/usr/src/gnokii# ./configure --prefix=/usr/local/
-> >
-> > checking for X... (cached) libraries /usr/X11R6/lib, headers
-> > /usr/X11R6/include
-> > checking for X11/xpm.h... (cached) no
-> > configure: warning: Cannot find include X11/xpm.h
-> > configure: warning: Disabling xgnokii.
-</pre>
-
-<p>For Debian GNU/Linux 2.2 potato:
-
-<p>
-<pre>
-> Do:
-> dpkg -S \*xpm.h
-> and show the result. You can't use xgnokii without libxpm.
-
-After I installed the xpm4g-dev_3.4k-5.deb xgnokii found my X
-
-My next Problem was the Program didn't find the gtk.h
-
-I installed this lib's
-libglib1.2-dev
-libgtk1.2-dev_1.2.7-1.deb
-
-and xgnokii are start up
-</pre>
-
-<p>For Redhat:
-
-<p>
-<pre>
-On Red Hat 6.2 (or derived?)
-
-sloth:danielm[12]% locate xpm.h
-/usr/X11R6/include/X11/xpm.h
-sloth:danielm[13]% rpm -qf /usr/X11R6/include/X11/xpm.h
-xpm-devel-3.4k-2
-
-On Red Hat 7 (or derived?)
-
-mouth:danielm[4]% locate xpm.h
-/usr/X11R6/include/X11/xpm.h
-mouth:danielm[5]% rpm -qf /usr/X11R6/include/X11/xpm.h
-XFree86-devel-4.0.1-1
-</pre>
-
-<p><font color="#1F409F" size=+2 class="dzial">Infrared problem</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<pre>
-> I'm having trouble getting Gnokii to work with my Nokia 6110 using the
-> infrared connection. It works perfectly with the cable. When I run gnokii
-> as non-root I get the following output:
->
-> Added new section global
-> Adding key/value port//dev/ttyS3
-> Adding key/value model/6110
-> Adding key/value initlength/default
-> Adding key/value connection/infrared
-> Adding key/value bindir//usr/local/sbin/
-> Entering monitor mode...
-> Initialising GSM interface...
-> Starting IR mode...!
-> Couldn't open FB61 infrared device: Device or resource busy
-> Hmmm... GSM_LinkOK never went true. Quitting.
->
-> And if I run it as root it looks like this:
->
-> Added new section global
-> Adding key/value port//dev/ttyS3
-> Adding key/value model/6110
-> Adding key/value initlength/default
-> Adding key/value connection/infrared
-> Adding key/value bindir//usr/local/sbin/
-> Entering monitor mode...
-> Initialising GSM interface...
-> Starting IR mode...!
-> PC: 1c:00:0c:02:00:09:00:01:00:0d:00:00:02:01:40:00:52:06:
-> Timeout in IR-mode
-> PC: 1c:00:0c:02:00:09:00:01:00:0d:00:00:02:01:41:00:53:06:
-> Timeout in IR-mode
-> PC: 1c:00:0c:02:00:09:00:01:00:0d:00:00:02:01:42:00:50:06:
-> Timeout in IR-mode
-> PC: 1c:00:0c:02:00:09:00:01:00:0d:00:00:02:01:43:00:51:06:
-> Timeout in IR-mode
-> PC: 1c:00:0c:02:00:09:00:01:00:0d:00:00:02:01:44:00:56:06:
-> Timeout in IR-mode
-> Hmmm... GSM_LinkOK never went true. Quitting.
->
-> It makes no difference if IR-reception is activated or not (well maybe the
-> numbers are different, I haven't checked)
->
-> I have followed the Alessandro's beta-HOWTO which was posted June 22 2000
-> with the subject "Re: IR setup".
->
-> In /var/log/messages I have found the following:
->
-> Feb 18 23:34:16 bmw kernel: ircomm_tty: virtual tty driver for IrCOMM (
-> revision:Wed May 26 00:49:11 1999 )
-> Feb 18 23:34:16 bmw kernel: ttyS00 at 0x03f8 (irq = 4) is a 16550A
-> Feb 18 23:34:16 bmw kernel: ttyS03 at 0x02e8 (irq = 3) is a 16550A
->
-> I have tried both with and without the irda-module loaded (insmod
-> irda) but without luck.
->
-> I'm using a Fujitsu C325 Lifebook (labtop) and my Nokia 6110 is version
-> 4.33. Has anyone experienced problems like these and hopefully has found a
-> solution, or maybe just have some ideas for what I should try next.
-
-"I also had removed the Ethernet PCcard.
-That thing got assigned the _interrupt_ (irq 3) that the serial interface
-for the IR port needs. Without it gnokii works."
-
-Now I've got contact to my Nokia 6110 using the infrared port.
-</pre>
-
-<p><font color="#1F409F" size=+2 class="dzial">Answering data calls problem...</font><br>
-<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>
-
-<pre>
-> It seems like it's some sort of PacBell or Verizon thing, because I
-> get a ring when I try to dial a voice call, but when I dial from
-> minicom/gnokiid I get "NO CARRIER" ("Check Operator Services" on the
-> phone), and dialing in from the Palm still gets no ring.
-
-First we should know how operators manage data call services,
-is there any international standard (it would be, to make international data
-calls possible). I described, how it works with my operator (Plusgsm/PL)
-and I'm interesting if it's a worldwide standard for these services?
-Did somebody tried to make a cellular-to-cellular international data transfer ?
-
-In Plusgsm there are three kinds of data calls :
-1. OUTGOING CALLS. Service activation is free with no additional monthly charge.
+<html>\r
+<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r
+ <meta name="Author" content="Marcin Wiacek">\r
+ <title>Configuration</title>\r
+ <link REL=stylesheet HREF="../styl.css" TYPE="text/css">\r
+</head>\r
+<body>\r
+\r
+<a NAME="Top"></a>\r
+<p align="RIGHT"><a class="autoremail" href="../index.htm">Main page</a></p>\r
+<center><font color="#1F409F" size=+2 class="tytul">Configuration</font></center>\r
+\r
+<p><hr size="2" noshade width="60%" align="center" style="color: #004080">\r
+\r
+<p><font color="#1F409F" size=+2 class="dzial">How to install it from the source ?</font><br>\r
+<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>\r
+\r
+<p>If you get the sources you need to create script \r
+<i>configure</i>. You do it by typing:\r
+<PRE>tfuj:~/gnokii-0.3.3pre5$ autoconf</PRE>\r
+\r
+<P>If you get the sources from the tarball you don't need to do \r
+this - <TT>configure</TT> is already made for you. For quick install do simply:\r
+<PRE>tfuj:~/gnokii-0.3.3pre5$ ./configure\r
+tfuj:~/gnokii-0.3.3pre5$ make\r
+tfuj:~/gnokii-0.3.3pre5$ make install\r
+</PRE>\r
+\r
+<P>But <i>configure</i> has some options. Except obvious \r
+parameters as <i>--prefix</i> which specifies a path to install GNOKII, you \r
+can specify one of the following: \r
+\r
+<DL>\r
+ <dt><i>--help</i>\r
+ <dd>Shows you list of available options</dd></dl>\r
+<dl>\r
+ <DT><i>--enable-debug</i> \r
+ <DD>Turns on debugging. It's usefull especially for developers. But if you \r
+ find a bug in GNOKII, please compile the sources with debugging enabled and \r
+ send this output to the GNOKII mailing list. This is used by <i>gnokii</i> \r
+ program. </DD></DL>\r
+<DL>\r
+ <DT><i>--enable-xdebug</i> \r
+ <DD>The same as above but used by <i>xgnokii</i>. </DD></DL>\r
+<DL>\r
+ <DT><i>--enable-rlpdebug</i> \r
+ <DD>This option turns on debugging specific to the RLP stuff. Note, that it's \r
+ very important at the moment as this part of GNOKII is under the hardest \r
+ development. </DD></DL>\r
+<DL>\r
+ <DT><i>--without-x</i> \r
+ <DD>Don't include X Window system support - <i>xgnokii</i>. </DD></DL>\r
+<DL>\r
+ <DT><i>--enable-security</i> \r
+ <DD>Turns on some security functions:.... Use them with caution. </DD></DL>\r
+<DL>\r
+ <DT><i>--enable-win32</i> \r
+ <DD>Include MS Windows support. Yes, it really exists. ;-) </DD></DL>\r
+<DL>\r
+ <DT><i>--with-model=MODEL</i>, <i>--with-port=PORT</i> \r
+ <DD>Specify the model of the phone (eg. 6150) and the port it is connected to \r
+ (eg. /dev/ttyS1). These values can be overwritten with ones from the config \r
+ files.\r
+ </DD>\r
+</DL>\r
+\r
+<P>The sample usage:\r
+<PRE>tfuj:~/gnokii-0.3.3pre5$ ./configure --prefix=/usr2 --enable-debug --without-x \\r
+--enable-security --with-model=6130 --with-port=/dev/ttyS1\r
+</PRE>\r
+\r
+<P>When the <i>configure</i> succeed, it shows options GNOKII \r
+will be compiled with:\r
+<PRE> Host system: linux-gnulibc1\r
+ Gnokii version: 0.3.3_pre5\r
+ Xgnokii version: 20000613\r
+ Phone model: 6130\r
+ Serial port: /dev/ttyS1\r
+ X (GTK) support: no\r
+ Debug: yes\r
+ XDebug: no\r
+ RLPDebug: no\r
+ NLS: yes\r
+ Security: yes\r
+ Win32: \r
+ Prefix: /usr2\r
+</PRE>\r
+\r
+<P>Now, the only thing left to do is just ro run:\r
+<PRE>tfuj:~/gnokii-0.3.3pre5$ make\r
+tfuj:~/gnokii-0.3.3pre5$ make install\r
+</PRE>\r
+\r
+<P>Finally, you have GNOKII installed in your system. And now REAL \r
+FUN begins. :-)\r
+\r
+<p><font color="#1F409F" size=+2 class="dzial">How to install it from binaries ?</font><br>\r
+<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>\r
+\r
+<p>If you downloaded gnokii as a pre-built binary you should install\r
+it in the conventional manner for the package type in question.\r
+For example if you downloaded a .rpm file you can install it by\r
+running the following as root.\r
+\r
+<p>rpm -i gnokii-0.3.2-i386.rpm\r
+\r
+<p>If you are using a Debian based system, you can use dpackage\r
+to do the installation (FIXME - is this correct ?)\r
+\r
+<p><font color="#1F409F" size=+2 class="dzial">How to make connection with phone ?</font><br>\r
+<hr align="LEFT" size="3" width="300" color="#60c0a0" noshade>\r
+\r
+<p>There are three ways to make it:\r
+\r
+<ul>\r
+<li>connecting phone with computer using cable. All phones allow to make it\r
+(even 3210 - connector is inside). If you want to know more\r
+about creating your own cable, read <a href=../gsm/cables/cables.htm>cables faq</a>.</li>\r
+<li>using IrDa port in phone and computer. Notice, that your computer\r
+and phone must have it (only some series of Nokia phones has it - for example,\r
+6110, 6150)</li>\r
+<li>connecting to phone special device called "dongle" (it has IrDa port)\r
+and making IrDa connection between it and phone. Current gnokii cas use