- G N O K I I - (C) 1999 - 2003 Hugh Blemings & Pavel Janik ml. (C) 2001 - 2010 Paweł Kot Last update 23 January 2011 Version 0.6.30 - Contents - 1.0 Introduction 2.0 About the applications 3.0 Notes for specific model phones 4.0 Installation from source 5.0 Installation of pre-built binaries 6.0 Configuration 7.0 Known Bugs 8.0 libgnokii bindings 8.1 Perl 8.2 PHP 9.0 How to help 10.0 gnokii by git 11.0 Protocol Details 12.0 References 13.0 Handsets/Networks tested 14.0 Credits 15.0 Release Notes - 1.0 Introduction - This is version 0.6.30 of gnokii, a multisystem tool suite and modem driver for the mobile phones, released under the GPL. Please see COPYING for more details on license/copying issues, the lack of warranty and where to send a postcard if you like gnokii :). Primary gnokii goal was to support Nokia phones, but currently we support all AT command compliant phones through the atgen driver. Moreover version 0.6.1 brings support for Symbian-based phones. gnokii supports most Nokia phones from the 3110/3180, 5110/6110, 7110/6210 and 6510/6310 series, details including bugs specific to each series appear in the files README-3810, README-6110, README-7110 and README-6510 respectively. Also all AT compatible phones are supported. In the early stages of the project there were indications that Nokia would provide some support for the project. Regrettably, these negotiations stalled over the issue of binary versus open source releases and the project has proceeded without official or unofficial assistance. We have a web site at http://www.gnokii.org/ and wiki at http://wiki.gnokii.org/ which amongst other things gives information on how to join the gnokii mailing list, retrieving bleeding edge releases through git and more! - 2.0 About the applications - gnokii project provides now several suprojects and several programs in them. The most important project provides libgnokii and core applications using it. To get the most from gnokii it is worth understanding the details of them and how they interact. The first application, gnokii, is a command line utility that was originally provided to assist developers and interested users in working with the low level API functions that were being developed. From these rather humble beginnings, it has evolved into a the main command line tool of the suite. Many people now use it for reading/writing phone book entries, sending and receiving SMS messages etc. The second application provided is xgnokii which as the name suggests is a X Window System based application that provides a graphical interface to your phone. Amongst other things, xgnokii allows you to read and write phone book entries, read, write and send SMS messages, monitor battery and received signal strength. The third part of the suite is gnokiid. gnokiid provides a virtual modem interface, /dev/gnokii that looks like a regular Hayes-AT compatible modem with the ETSI defined extensions for GSM phones. What this means in practical terms is that you can treat the /dev/gnokii device like an ordinary modem and use it to make data calls from pppd or a terminal application like minicom. Currently gnokiid is only useful for old Nokia phones from 6100 series that didn't include AT commands support. This includes Nokia 61X0 and 51X0 models. Don't use it with other phones. gnokiid makes use of the small helper application called mgnokiidev. It creates on demand a symbolic link between /dev/gnokii and the pseudo tty used by gnokiid for the virtual modem interface. Its operation is transparent under normal usage as gnokiid takes care of calling it when required. The last application within the main gnokii project is smsd, a deamon that simplifies operation of sending and receiving SMSes to the database operations. There are several gnokii subprojects which are worth mentioning. gnocky is an alternative GTK2 phone manager suite, thought as a replacement for xgnokii, however not yet that powerful. gnokiifs provides a filesystem access to the phone filesystem (if the phone supports it) on top of libgnokii. You may need this just when the phone doesn't support Obex protocol. gnapplet is a phone driver for the Symbian phones. This is at the moment the only way we can access various data on such phones as AT capabilites of Symbians are very limites (you can access them also with SyncML getting some more information). gnokii-artwork contains some images and pixmaps that may be used by xgnokii and other GUIs. They are put into the separate module because we are not sure about the licensing. gnokii-extras contains sample applications (some of them really useful!) demonstrating how to use libgnokii. There are also several third-party applications using libgnokii, including: kdepim (distributed within KDE), Multisync and Opensync (as a plugin), GNOME PhoneManager, Maemo's PhoneLink, qnokii. - 3.0 Notes for specific model phones - Please see the README-3810 file for notes specific to the 3810/8110 series, README-6110 for notes on the 5110/6110 series, README-2110 for notes on the 2110 series (which is at the moment deprecated), README-7110 for notes on 7110/6210 series and README-6510 for notes on the 6510/6310 series. If you have DKU2 cable, read README-DKU2 to see how to get support under Linux (other OSes are not supported yet). See also README-dancall, README-ericsson, README-siemens and README-Symbian for notes on these phones. For building WIN32 versions see README-WIN32 file. - 4.0 Installation from source - gnokii makes use of autoconf/automake which allows you to configure the source tree for your system by typing ./configure You can also run the script with the --help flag to get a list of available options. There are about a dozen or so that are specific to gnokii. Once you've run ./configure successfully, you should be able to simply do a make and make install to compile and install your binaries respectively. make make install With this done you've built and installed your binaries, and should proceed to the configuration section below. - 5.0 Installation of pre-built binaries - Primary choose should be to install what your distribution (or in general: system) provides. gnokii is present in most of the popular Linux distributions as well as in FreeBSD ports. To install gnokii use the way your distribution recommends (apt-get, yum, synaptic, emerge, ...) However, if you would like to use more up-to-date gnokii versions (ie. git versions) and don't want to compile it by hand, there are several unofficial repositories hosting gnokii packages. There is a list of such repositories at http://wiki.gnokii.org/index.php/PreBuiltPackages. - 6.0 Configuration - Once you have installed the binaries, you should take the sample/gnokiirc file from the Docs directory. As of 0.7.0 version gnokii follows freedesktop.org specifications and looks for the config file in $XDG_CONFIG_HOME/gnokii/config. Verify the setting in your system (usually it should be $HOME/.config) and place there your config file. Using your favorite editor ensure that the settings are correct for your system, the sample file has details of the various options available. You may refer to for the configurations known to work. You may use gnokii-configure utility for assistance. It is provided in utils dir in gnokii distribution. If you used a pre-built version of gnokii (.rpm, .deb etc) it may have installed a /etc/xdg/gnokii/config or /etc/gnokiirc file. If it has, the settings in this file will be used in the absence of a config file in your home directory. Note that you will need read/write permissions on whatever device you specify in config file. You can now use gnokii and xgnokii. Review the notes specific to your model of phone in the appropriate README file. These files also provide information about what functionality is available for each model. Sample config file provided with gnokii sources provides many examples and explanations. In order to make use of the AT emulator provided by gnokiid through /dev/gnokii, you must read the documentation file DataCalls-QuickStart. A simple test to confirm that your cable/IrDA/bluetooth link is working is to run gnokii with the --identify flag e.g. foobar$ gnokii --identify This will attempt to connect to your phone and display the basic information about the phone: manufacturer, phone model, firmware version and IMEI. If you get an error along the lines of Telephone interface init failed: [...]. Quitting. this indicates that gnokii could not communicate with your phone for some reason and you will need to do some troubleshooting. As the other test you may try: foobar$ gnokii --monitor which should show you some other information like memory usage or signal strength. - 7.0 Known Bugs - Review the bugs section in the README for your series of phone. - 8.0 libgnokii bindings - - 8.1 Perl - There is a perlmodule available for gnokii. It gives access to some of the public libgnokii routines from a perl-program. It is intended for application developers who want to use their favorite language in interfacing the phone data with databases, ldap-directories and (in the future) different calendar applications. It is written by Konstantin Agouros (konstantin@agouros.de) and support starts with revision 0.2.6-pre3 of gnokii. The homepage of this module is http://www.agouros.de/gnokii Please note that Perl binding has not been updated for some time and may not work with current libgnokii. - 8.2 PHP - Daniele Forsi prepared PHP bindings for libgnokii. It should be mostly up-to-date and supports most of the useful things that you might use from a webpage. You can find more information about gnokiiphp at http://www.forsi.it/taxonomy/term/21%252C6. - 9.0 How to help - There are a number of ways you can help out. Code specific to each model is contained within common/phones/*.c and include/phones/*.h files. All command handlers will dump information to stderr when they encounter a message they don't understand. If this happens to you, try and work out what is going on. When gnokii receives the frame with the unknown meaning it stores the frame and the triggering frame to $HOME/.gnokii-errors file. Report it! Suggestions on changes to the code are welcome, the preference is that they be aired on the mailing list so that a consensus can be reached when appropriate. This is particularly important if you intend making large changes and/or submitting big patches. - 10.0 gnokii by git - The source of gnokii applications is in the git server. If you are already familiar with git, clone the main repository (containing libgnokii, gnokii, xgnokii and smsd) with: git clone git://git.savannah.nongnu.org/gnokii.git and, optionally, the other repositories with: git clone git://git.savannah.nongnu.org/gnokii/gnapplet.git # Applet for Symbian phones git clone git://git.savannah.nongnu.org/gnokii/gnocky.git # Alternate GUI git clone git://git.savannah.nongnu.org/gnokii/gnokii-artwork.git # Optional graphic files git clone git://git.savannah.nongnu.org/gnokii/gnokii-extras.git # Additional programs and language bindings git clone git://git.savannah.nongnu.org/gnokii/gnokiifs.git # CODA file system git clone git://git.savannah.nongnu.org/gnokii/knokiisync.git # KDE Address Book synchronization git clone git://git.savannah.nongnu.org/gnokii/zphone.git # Zaurus frontend If you are not familiar with git, don't worry. It's very simple. Just install the git package for your distribution and follow these steps: 1. Open your favorite shell, cd to the directory that will contain the gnokii directory and execute this command: git clone --depth 1 git://git.savannah.nongnu.org/gnokii.git this creates a 'gnokii' directory in which the sources and other needed files are downloaded; the --depth 1 argument creates a shallow clone which is slightly smaller and quicker to download (it is adequate for compiling but has some limitations, omit it if you want the full history, see man git-clone for details). In future you can update to the latest sources running the following command from inside the 'gnokii' directory: git pull 2. There are other programs available in the gnokii repository that you can get in a similar way (see above for addresses) each in a different directory, NOT inside 'gnokii' If you prefer, there is a WWW interface to the git server at http://git.savannah.gnu.org/cgit/gnokii.git/ Once you have the sources, you will need to run the following commands libtoolize -c -f glib-gettextize -f # under FreeBSD you may want to provide additional parameter to # aclocal: -I /usr/local/share/aclocal aclocal -I m4 autoheader -I m4 automake --add-missing autoconf ./configure make or just issue sh autogen.sh make to build the sources. Now you are on your own - you have the current sources on your disk in the directory gnokii. If you are going to make substantial changes and feel that they should be included into gnokii please mention it on the list first to avoid duplicated effort. If you would like to receive email when updates are made to the git repository, subscribe to gnokii-commit mailing list at http://mail.nongnu.org/mailman/listinfo/gnokii-commit. Our thanks go to the Czech Linux Users Group for hosting the original CVS repository at cvs.linux.cz and then to the Samba Team who kept hosting our CVS for the several years at cvs.samba.org. - 11.0 Protocol Details - You'll find the detailed protocol description in Docs/protocol/ directory. - 12.0 References - The web site for this project is at: Wiki site for the project is at: Project page on savannah is at: The mailing list devoted to the gnokii project is: You can subscribe at: The serial programming how-to was valuable in cobbling together serial code for both monitoring and the tools themselves. - 13.0 Handsets tested - These are phone models used for testing by gnokii developers. Keep in mind that list of actually supported models is much longer. Nokia 6510 Series + 6230i + 6021 AT series + Nokia 6230i + Nokia 6021 Gnapplet series + Nokia 3650 - 14.0 Credits - Please take a moment to read the CREDITS file which endeavors to recognise those who have helped so far! - 15.0 Release Notes - 20110123 Version 0.6.30 New phonet driver which is compatible with phonet (2.6.28) and cdc_phonet (2.6.30) linux kernel drivers (replacement for dku2libusb connection type). Enhancements in handling and discovering series40 3rd+ edition phones. Numerous bugfixes in libgnokii including important fixes to sms handling. Fixes for Windows builds. SQLite3 backend for smsd. 20100425 Version 0.6.29 Major bugfixes in the encoding procedures. That should fix all problems regarding SMS encoding on libiconv-based systems. This release may not work properly or even build on Windows and systems without libiconv support. Improvements in handling Series40 5th and 6th Edition. 20090907 Version 0.6.28 Tons of bugfixes and updates. The most important include sms and encoding handling functions. We are also better with Series40 3rd+ Edition support. SMSD gained stability improvements. There were also portability fixes: gnokii should now compile just fine (again) on most platforms. We have now also Bluetooth support for FreeBSD. Experimental support for MMS reading for Nokia Series40. 20081006 Version 0.6.27 Fix some portability issues for win32/MacOS X/FreeBSD/Linux. Improve support for Inbox SMS reading for Series40 3rd+ Edition. Support for new memory types: Status Reports, Drafts, Outbox with items not yet sent. Improve conversion functions for vCards. Implement bluetooth channel autodetection. Improve call divert support. Start replacing hardcoded limits with dynamic allocation. Better support for Sagems, Samsungs and Sony-Ericssons. Fix various potential and real overflows and other bugs. 20080530 Version 0.6.26 Fix infinite loop problem with SMSD. Fix vCard reading/saving problem. Better handling of +CREG information in AT driver. Other fixes to AT driver. 20080503 Version 0.6.25 Allow to use --entersecuritycode with another gnokii command. Use standardized functions to print out enums' values. vCard support compliant with RFC2426. Enhancements in pcsc driver. Correctly handle +CRING: in AT driver 20080320 Version 0.6.24 New API for config handling (more friendly to external apps). Fixes in memory types handling and SMS handling in AT driver. Some other bugfixes and improvements. 20080215 Version 0.6.23 Build system changed to automake (from handmade) which should make packagers' life easier. Fix FBUS initialization for DKU-5 (hopefully for the last time). Remove some deprecated functions from API. Attempt to read SMS from all Series40 Nokias in FBUS mode. Fix some other minor issues. 20071124 Version 0.6.22 Fix phonebook entries deletion from xgnokii. Fix moving phonebook entries from SIM to phone and vice versa from xgnokii. Fix initialization for some DKU-5 cases. Fix not working message retries. Fix non working SMS reading on DKU-2 connection. Fixes for Motorola compatibility (SMS notification and model reading). Fix installation issues. Add possibility to build gnokii with MS Visual Studio 2008. gnapplet now registers its bluetooth service so you can check if it's running. 20071111 Version 0.6.21 Implement various new FBUS protocol findings. Make bluetooth connection non blocking. Avoid weird memory corruptions. Improve DKU-5 initialization stage. 20071027 Version 0.6.20 Add support for SIM Card Readers (pcsc driver). Improve SMS saving to the external files. Fix several segmentation faults. Make DKU-5 connection working again. Better support for SonyEricsson phones (phonebook, date and time functions). Some code cleanups. 20071005 Version 0.6.19 Various bugfixes. See ChangeLog for the details. 20070724 Version 0.6.18 Fix callback (call, sms, cell broadcast) support and add it in AT driver. Fix long sms splitting. Add --showsmsfolderstatus support in nk6100 driver. Add support for multipart smses in smsd's mysql backend. Add better support for extended phonebook. 20070621 Version 0.6.17 Fix most of xgnokii memleaks. Fix gnokii options parsing. Fix most of uninitialized variables usage. Introduce support for more than one phone connected with DKU2 cable (see sample config file for details). Fix segfault when config file is missing or broken. Use defaults from config values are incorrect or unsupported. 20070511 Version 0.6.16 Compilation fixes for Solaris and Windows. 20070507 Version 0.6.15 Tons of updates. Most important changes include: support for reading extented phonebook entries, fixes for some nasty segfaults, fixes for decoding SMSes for some encodings, better support for Samsung mobiles in AT driver. 20060829 Version 0.6.14 Add WAP push support. Add --config and --phone options for gnokii CLI (to choose config file and phone section). New waitcall utility. Other minor fixes. 20060618 Version 0.6.13 Make libgnokii API more convinient to the third party applications. Fix few memory leaks and incorrect sprintf() usage. Phonebook entries with no name are not empty (eg. missed calls). Win32 compatibility fixes. Support for DKU2 cable using libusb. 20060311 Version 0.6.12 Fix a bug causing segfault with xgnokii startup when gnokii-artwork package is not installed. Small updates allowing better ringtones handling and for xgnokii optimizations. 20060215 Version 0.6.11 nk6510 driver fixes: make call, calendar notes, subscribe and other low level fixes. Virtual IrCOMM device support. No need to recompile to add ability do connect with IrDA to a new model. Xgnokii coredump fixes, GTK2 compatibility, some new features (dial pad), phone images moved to the separate package. LDIF handling improvements. Gnokii --putfile and --writephonebook fixes. RING and +CRING messages handling. And many other fixes. This is huge update. 20051109 Version 0.6.10 Silly bug fixed from gnokii prevented --getfiledetaildbyid working correctly. Mingw compilation fixes. New models support. 20051020 Version 0.6.9 Improved DKU-2 driver. File operation support for Nokia 6610i family. Minor bugfixes. 20050724 Version 0.6.8 Another bugfix release. Main highlights are: removed an infinite loop with xgnokii, fixed to unicode handling, updates to nokia_dku2 driver, end keyword for --getsms and --deletesms. 20050516 Version 0.6.7 Minor bugfix release. Don't use non-portable strndup. Update FAQ. Update build scripts for Slackware and Gentoo. New option --disable-unix98test for configure script to avoid testing for grantpt() what may be useful when preparing packages in faked environment. 20050512 Version 0.6.6 Minor bugfix release. Various cleanups to the code. Translation updates. Fixes to the file handling. 20050429 Version 0.6.5 This is really big release. The delay since the previous version was caused by the copyright issues that should be resolved right now. The code improvements contain: DKU2 calbe support (along with Linux kernel driver), filesystem functions, fixes for SMS and TODO reading, call management. For more details see the ChangeLog. 20041017 Version 0.6.4 Many improvements: build system, new phones supported by various drivers, more functionality in gnapplet driver (calendar, todo, sms and much more), end keyword will work for most gnokii commands, some nasty bugx fixed, updated documentation, NetBSD support. 20040705 Version 0.6.3 Small fixes for MSVC compilation problems. 20040703 Version 0.6.2 This version brings many portability and build system updates. Gnokii should build cleanly on Linux, Windows (cygwin and MSVC), FreeBSD and OpenBSD operating systems. We have more gnapplet functionality (thanks bozo), IrDA support for Windows, and many bugs fixed: mainly connected with calendar and addressbook handling. Gnokii now supports libical as a primary library to support vCalendar input and output. 20040413 Version 0.6.1 With this version gnokii starts to support Symbian phones. This consists of gnokii symbian phone driver (called gnapplet) and Symbian application to be installed and run from the phone. Minor fixes and build system updates. Complete Nokia models list. 20040222 Version 0.6.0 Bugfixes in phonebook handling (import and export should work now correctly, gnokii and xgnokii share the formats), calendar handling, sending unicode short messages (chinese texts should be sent correctly), msvc6 build. Set correctly Nokia 8310 information (logo sizes, signal indicator). Updates to documentation. Debug can be turned on in the config unless it was explicitely disabled with --enable-debug=no. 20040201 Version 0.5.10 Few bugfixes: ucs2 encoding and decoding, phonebook subentries, at driver responses handling. New features: answer/cancel call for AT driver, delete phonebook entry. Besides many documentation updates and build fixes. 20040119 Version 0.5.9 We disabled Nokia 6100 support as it is known to break the phone with the gnokii communication over the irda port. All tested firmwares seem to be vulnerable. We're working on the real fix. Besides many bugfixes. We focused on build problems. Also some code improvements: fix memory leaks and somesegfaults, fix --playringtone incorrect behaviour, fix large calendar reading. 20040101 Version 0.5.8 Many cleanups and build fixes (some of them taken from FreeBSD ports). Updated GSM operator list. Fixes in gnokii behaviour. New commands for AT driver. 20031216 Version 0.5.7 Support for Bluetooth on MacOS X and FreeBSD. Many fixes: phone lockups, utf8 encoding, ringtones. Some new features for different drivers were implemented. Updates for win32 build. 20031108 Version 0.5.6 Many bugfixes. Ringtone editor in xgnokii is fully functional. Ringtone support is enhanced in the nk6100 and nk6510 drivers. A lot of datacall related updates (RLP bugfixes, AT emulator enhanced). vCard and LDIF addressbook export is working again. 20031008 Version 0.5.5 Bugfix release, focus mainly on the ringtone features. Some new functions added wrt ringtones. 20030922 Version 0.5.4 Win32 port update and other small bugfixes. 20030921 Version 0.5.3 Many bugfixes. Added missing manual pages. Updates to nk3110, nk6100 and nk6510 drivers. New functionality: possibility to exchange addressbook in the LDIF format (used by Mozilla Mail), playringtone. 20030613 Version 0.5.2 Few more bugfixes. French translation. Updates to nk3110 and nk6100 drivers functionality. 20030529 Version 0.5.1 This is mainly maintanance release fixing few bugs found. 20030512 Version 0.5.0 The external API was rewritten. Now it should be easier to write any external application using libgnokii. Many bugfixes and code cleanups. Improved build system. Better portability to *BSD, MacOSX and Windows. Allow to use multiple phones. Bluetooth support. New helper applications: ppm2nokia. Much improved nk3110, nk6510 and AT support. 20020805 Version 0.4.3 Many functional updates. They touch mainly nk6510 and nk6110 drivers functionality, also updates in nk7110 driver. Add new functionality to gnokii/xgnokii (TODO list). More phone models are known to work. SMSD should work with the drivers supporting SMS folders. 20020722 Version 0.4.2 Minor updates. Mainly fixes and updates in nk6510 driver: sms sending and reading, dlr3p cable support. sendsms can recognize messages not written in the default alphabet and automatically sends them in unicode. Also many reported nasty bugs fixed. 20020714 Version 0.4.1 Minor but valuable updates. Many improvments in nk6310 driver (Nokia 6310, 6510 and 8310), small improvements in nk6160 and nk7110 drivers, more verbose output for gnokii command line output, documentation updates containing FAQ updates, SMS sending timeout is now configurable, flex will not be required to build gnokii from the tarball and other minor fixes. 20020710 Version 0.4.0 Major rewrite. Internal API completly changed. Added support fot the new phones, maily Nokia 6210, Nokia 7110, Nokia 6310, Nokia 6510 and AT compatible not-only-Nokia phones. We got new libgnokii, that can be used for creating any user application, smsd -- sms handling daemon, libsms -- first step to extract a middle layer, many new options to command line gnokii and many others. Refer to the ChangeLog for the detailes (unfortunately it starts with 0.4.0pre9 version) 20010627 Version 0.3.3 Many 6110 series updates: mainly in SMS, bitmaps and ringtones handling. Better localization. Integrated xlogos with xgnokii. Documentation updates. Probably the last 0.3 series release. 20000520 Version 0.3.2 We have data calls and autoconf. Nuff said :) 19991222 Version 0.3.1 Interim release to bring released code into line with latest CVS offerings. 19990824 Version 0.3.0 6110 functionality has increased again, details of which are in the 6110 specific readme. Few minor tweaks on the 3810 side but we've just about run out of things the 3810 can do (data and fax calls aside of course!) This release is the first to include xgnokii - an X based interface to your phone and gnokiid - the makings of a virtual modem/AT emulator interface. Details of these two apps appear above. 19990519 Version 0.2.5 Little has changed on the 3810 side - mostly adding stub functions to stay current with the 6110 code. A no-brainer bug was found in the SMS send routines which is now corrected - could have caused multiple messages to be sent. 6110 support has moved ahead in leaps and bounds, SMS sending is now in there along with many other new function. 19990328 Version 0.2.4 Largely a synchronisation release to incorporate Pavel's numerous patches for 6110 support and internationalisation (such a long word, i18n is better :-). Added SMS delete function for 3810 series. 19990305 Version 0.2.3 Added gsm-api.c/.h and gsm-common.h as a standard interface and set of datatypes that can be used across multiple models. This API is still a work in progress. Changed references to "handset" to "phone" to ensure a consistent nomenclature. Phonebook is now dumped with words int or sim for memory type rather than a numeric value. 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 center 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.