mShell is a free script language for Symbian, download here, homepage here.

Just played with that genious language and programmed a script to replace...
* profile scheduler (like HandyProfiles)
* apps scheduler (like Plantask)
* signal strength monitor (like SignalStrengthMonitor)
* intellinotify by LEDs (like LightSignalPlus, but better, signals call=green msg=white, configurable intensity/on_time/off_time)
* security app resisting *#7370# (like many apps out there reacting to SIM-Card change, but none resists a phone memory format)

and to gain some additional functionality...
* scheduled MemoryClean (if installed JbakTaskman)
* scheduled CacheClean (if installed NokiaFileBrowser)
* close up to 6 apps after inactivity (some apps lead to increased energy consumption...)
* start up to 6 apps daily (make sure these apps run e.g. in the morning)
* auto switch BlueTooth (when phone rings, switch again when call ended, works also in car with navigation app)
* connect regularly to Internet (for SPB Weather to update)
* force to display a certain app after unlock

Instead of having several utilities running their loops, this is enough, does it's job, uses little RAM, sleeps mostly and does not drain your battery.
To keep it small, there is a very basic options menu, but it's highly configurable, so after install edit !:\data\mDaemon.ini. It is best to install it on phone memory C:.

Maybe it's useful to somebody,

to use the memory cleaning feature you need:
* installed JbakTaskMan
* config two apps (TASK1, TASK2) that are showed in JbakTaskman if running

to use the cache cleaning feature you need:
* installed Nokia Filebrowser

to use the bluetooth switching feature you need:
* installed BTswitch app

to use the security feature you need:
* read readme_security.txt and add files to your CFW

to use the LED blinking feature you need:
* switched off Nokia notification
go to Settings/Phone/Noficat. lights/Standby br. Light
switch off Breathing Light
go to Settings/Phone/Noficat. lights/Notification light/Events notified
uncheck "Missed Call" and uncheck "New Message"

to use the answering machine LED blinking feature you need:
* installed answering app (or use ansering machine service from your provider)
answer calls after value in answering app = value in mDaemon.ini + 3 seconds
if answered differently on Silent profile, make sure profile scheduling is active
if callers are rejected, send busy tone immediately to avoid blinking

what it does:
* once at start autostart procedure (clean memory, clean cache)
* once a day at cleaning time auto clean memory with lovely JbakTaskMan
* once a day at cleaning time auto AvkiconCache clear with NokiaFilebrowser
* once a day at cleaning time auto run apps TASK1-6
* every inactivity period auto close apps KILL1-6
* every 1/3/6 hours connect to Internet for 30secs (SPB Weather workaround)
* every unlock auto show specific app
* every unlock overide display brightness intensity
* every unlock update Options menu, check accelerator values for gestures
* at silent time auto switch to Silent Profile
* at general time auto switch to General Profile
* at sched1/sched2/sched3 on time start app(s)
* at sched1/sched2/sched3 off time end app(s)
* every minute monitor GSM signal alert if 2nd test failed, alert if signal back (once per hour)
* every minute monitor current profile if not on general/outdoor then enable silent mode
* every minute monitor SMS and MMS inbox, if unattended message blink white LED
* when phone locked and ringing and you missed a call blink green LED
* when phone locked and ringing and answering machine answers blink green LED
* when phone unlocked and navigating and ringing start BTswitch app, switch again after call
* when phone locked and ringing start BTswitch app, switch again after call
* when blinking and alarm sounds or user took a call manually redo LED blinking afterwards
* when unlocked by user and used for reset blinking timeout LED's are resetted

does the above by:
* not playing any soundfile if profile scheduling active and on Silent;
* turning off warning tones before scheduled profile switching from Silent->General,
no Nokia-BEEEEP will be emitted,
after activation of General Profile turns on warning tones again!
* using ~0.8MB of RAM, little energy and CPU, not noticeable with NokiaEnergyProfiler

configuration file !:\data\mDaemon.ini:
* edit and make sure it suits your needs
* BACKUP this file before you update, then manually copy your values!

options menu:
* menu Options is only available in the first minute after unlock (to save battery); settings are not saved
* menu refectls the current state of the script (to verify e.g. if GSM signal check is enabled or not)
* option GSM signal check, switches the GSM signal check feature
* option BTswitch, switches the auto bluetooth switch feature on ringing
* option Brightness, switches display brightness intensity

fixed script crashes when phone in Offline profile (phone.state throws exception)
fixed not reacting to cleaning off
added 3 apps to be started/stopped on schedule
profile scheduler has priority, don't use same times on program scheduler!
auto net connection is done on full hour (:00) only if no other schedule exists at that time!
fixed blinking after profile change and after cacheclean, it will continue to blink
fixed no sound+vibration when on charger
added options menu (enabled 1st min after unlock), is updated after unlock to show current state
added gestures, accelerator values checked for 20secs after unlock and react with various commands
added display brightness control, also after lock/unlock; system takes control after inactivity period
Outdoor profile can be linked to display brightness
General profile resets display brightness
compiled as SystemApp, will not be killed on Backup or MemoryCard remove (essential for security feature!)
scheduled profiling supports all profiles, Yes pressed when switching away from Offline profile
fixed profile scheduling with offline
fixed outdoor brightness control
removed gestures (bug in mShell module leads to 0.02W more energy consumption)
added awareness of profiles (thx to MrPotter and DC-compiled Profiles_mm.dll)
V1.23 (backup mDaemon.ini BEFORE you update)
adapted to JbakTaskman V1.40, scancodes can be defined in mDaemon.ini

BlinkTest (included in rar-file)
use this to test if m-Shell supports LED blinking on your phone
Sign, install, start (it needs mShell environement as mDaemon does!).
If LED blinks change mDaemon.ini to displayed value and please post your results...
Blinking works on:
- 5800 with C6 (V11.0.029, V20.0.38, V20.0.41), on V51.0.006 or V52.0.007
- N97 V22.0.110
- SE Vivaz (16 - Button, 32 - Blue led)
- X6
Blinking does not work on:
- 5800 V51.0.006 Original