- G N O K I I - (C) Hugh Blemings, hugh@vsb.com.au 1999 Last update 19 February 1999 Version 0.2.2 - Introduction - This is version 0.2.2 of gnokii, a Linux/Unix tool suite and (eventually) modem/fax driver for Nokia mobile phones, released under the GPL. Please see COPYING for more details on licence/copying issues. The code supplied is still relatively new and hence has had limited testing. Bugs where know are detailed in the file BUGS... Play around with it, hack at it and see what you discover but please do so in the knowledge that it comes with no warranty or guarantee - you use it at your own risk. The resulting executable allows you to read/write phonebook entries, send SMS messages to the network, dump SMS messages from the phone and enter a monitor mode to look at the protocol and any unknown messages that may occur. The latter are printed in hexadecimal form and are provided to help with understanding of the protocol. The code for reading/writing phonebook entries has had limited testing but the read code is believed to be solid. It has been observed that the write code occassionally fails to write a location for reasons as yet unknown. The format of the input to the write option is relatively unforgiving and does only very basic parsing. Routines for retrieving SMS messages have been tested and appear to be bug free. The 3810 used for testing appears to ignore the memory type field however. Sending SMS is something of another matter. This has been tested on a 3810 on the Australian Optus/Hutchison network. Most of the time the messages are sent as expected but occassionally they fail for no apparent reason. The code is designed to re-try up to four times before giving up if a 0x65 0x26 response is recieved. Sometimes however error codes are seen 0x65 0xYY, the meaning of which is unknown. Any light you can cast on this is welcome. It is possible that switching off the phone and switching on again may help but this may be just a coincidence. It should also be noted that the SMS header message sent by FBUS_TX_Send0x23_SendSMSHeader code has no less than 10 bytes in it that aren't understood. The values used are simply those that have been observed. They may have to be totally different on your network :( They may inadvertantly route the message to a distant land or just not work at all. - Installation - Review fbus.h, make sure that the FBUS_DEVICE define points to the right serial port. You'll need r/w permissions on this port. If your SIM card allows names longer than 10 character, modify FBUS_DEFAULT_SIM_PHONEBOOK_NAME_LENGTH in fbus.h accordingly. Type make, all should build from there, it's pretty simple code so you shouldn't have any problems. Note that you need pthread libraries, they are standard on most modern Linux distributions. If you are going to use --sendsms, read the notes above as it may not work for you. - Known Bugs - Review the file BUGS in the first instance. If you are using gnokii, particuarly in these early days, it is worth joining the mailing list as bugs will be reported there first! Alternatively review the BUGS file on the web site. - How to help - You can assist the development process and by making note of any messages that occur and seeing if you can work out what they mean. Suggestions on changes to the code are welcome but don't spend too much time in this area as it is still a work in progress. - Protocol Details - The protocol used between the handset and the PC has been worked out by a mixture of trial and error, monitoring the data that goes between the 3810 and its Windows 95 software and a few snippets of information found on the 'net relating to older Nokia models. Feedback from people who played with the first release of gnokii was invaluable. More of the protocol has been investigated than is presently included in the software, now primarily the messages/protocol to do with actual data/fax connections. However, they are not yet fully understood and hence have been left out of the included code for now. - To Do - A lot. Ultimately I envisage a kernel driver that is loaded as required that talks to the handset via the real serial port on one side in the phone's protocl. The other side appears as a fairly basic serial port that can understand AT commands and otherwise appear like a modem. Some form of IPC will be used to access the Nokia specific functions, for example monitoring signal levels whilst a call is in progress. These sort of matters are actively being discussed on the mailing list at the moment. At the present, the user interface, error reporting and such like is hardly what one would call user friendly. This too will improve as the project progresses. - References - The web site for this project (basic though it is) is at; There is a similar project underway for the 6110/5110 range of handsets, discussions are underway to see about merging the two efforts. The serial programming howto was valuable in cobbling together serial code for both monitoring and the tools themselves. This is the Australian mirror, there will be one nearby to you too :) - Handsets/Networks tested - 3110/Sonera (Finland) 3810/Telstra (Australia) 3810/Optus [Actually Hutchison] (Australia) 8110/Proximus (Belgium) 8110/D2 Privat (Germany) 8110i/MTN (South Africa) - Credits - Thankyou to, in no particular order... * Everyone on the linux-nokia mailing list for their interest and input into the project. * Francois Dessart, Brendan O'Dea, Tony Lindstrom, Steffan Henke and Cobus Van Eeden for dumps (and in some cases interpretation!) of unknown messages, bug reports and prompt feedback of being able to build new releases. * Martin Hamilton for looking after the mailing list. * Lucy for making pizza and putting up with me dissappearing to work on this :) - Release Notes - 19990219 Version 0.2.2 Fixed bug and added support to display bytes returned when the link is initialised. If you see something other than the values noted in fbus.c, please let me know and include your phone type and software version. Added initial cut of SMS send capability. Caveats are discussed above. Added two different default values for length of phonebook name and numbers. These are selected according to whether internal or SIM memory is specified. Fixed bugs reported in 0.2.1 (errno.h and reversal of message centre and sender fields) 19990216 Version 0.2.1 Fixed bug that caused phone book entries containing spaces to be mangled. Added retrieve SMS message function. 19990213 Version 0.2.0 First version that looks more like the finished product - supports command line options etc. 19990126 Version 0.1.0 Initial release of monitoring tool - first rough incarnation of gnokii - what will ultimately be the monitoring and programming tool.