SMSCON

SMSCON provides complete control of your N900 by sending SMS messages to it. This is particularly handy in case you cannot find your phone, for example if it has been lost or stolen.

SMSCON is a two part Python script running in CLI; smscon and smscon_daemon. smscon is the CLI control part and smscon_daemon is the "running in the background" part. The configuration file for all the user settings is in the smscon_config file.

Contents

Functionality

SMSCON can:

  • autoload at boot (this is default set at install of smscon package); when device reboots it loads smscon_daemon in the background.
  • creates a log file (on the device).
  • detect SIM card change and sends new phonenumber and IMSI code (returns SMS) to other known mobile number; if somebody has stolen your phone and put his/hers own SIM card in it.
  • send current GPS location coordinates (returns SMS or EMAIL with GoogleMaps picture with your phone's location on it).
  • reboot the phone; only works if your SIM card hasn't a lock code.
  • shutdown the phone.
  • open a reverse ssh connection to your own server (GPRS connection); control the phone at CLI level from your own home server.
  • email a frontcam picture to your email address (GPRS connection); to see where your phone is or who is using it.
  • send the current remaining battery charge (returns SMS).
  • make the phone call you; you can listen where your phone is (returns phonecall)
  • lock the phone; nobody can use your phone anymore.
  • detect keyboardslider use; when somebody has found your phone and uses the keyboard. (only after one of the valid SMS commands is send to you phone) (returns SMS)
  • send all valid SMS commands to you if you forgotten it (returns SMS's)

Installation

SMSCON & SMSCON Editor can be found in the Extra-devel repository (if enabled on your phone).

SMSCON is writen in Python and needs the following packages, besides python2.5, being installed on your device to install and run:

python-gobject
python-location
python-dbus
pexpect
gstreamer-tools 
openssh-client
openssh-server

The two (smscon and smscon_daemon) are placed by the installer in the /usr/bin directory.

The installer will also generate a smscon_boot file for autoloading at boot of the device.

Finally SMSCON generates a default template file (smscon_config) with all the user settings of SMSCON. This must be edited by hand or the SMSCON Editor before use of SMSCON.

Also you need a fixed IP address on your remote server for the reverse-ssh (port 22) connection, if you want to use the 'Remoteon' / 'Remoteoff' function of SMSCON.

Usage

SMSCON is triggered by a SMS message with a predefined known command and then will execute the task in the background. If so it will send a reply SMS or email with the information.

Commands

The default commands are:

Nokia-N900:~# smscon -sms
COM_CHECK     = 'Check'
COM_REBOOT    = 'Reboot'
COM_POWEROFF  = 'Poweroff'
COM_POWER     = 'Power'
COM_LOCATION  = 'Location'
COM_REMOTEON  = 'Remoteon'
COM_REMOTEOFF = 'Remoteoff'
COM_CAMERA    = 'Camera'
COM_CALL      = 'Call'
COM_LOCK      = 'Lock'
COM_UNLOCK    = 'Unlock'
COM_TRACKON   = 'Trackon'
COM_TRACKOFF  = 'Trackoff'

USAGE EXAMPLE: To trigger any of the commands the phone should receive an SMS having in the subject its defined name. E.g. to trigger the COM_LOCATION command the phone should receive: Location

NOTE: These commands can be altered using the SMSCON Editor or editing directly the smscon_config file:

# smscon user settings (v0.4.4)
# (edit only the user settings below!)

# Sms settings
SENDERNUMBER      = '+XXXXXXXXXXX'

# Sms commands
COM_CHECK         = 'Check'
COM_REBOOT        = 'Reboot'
COM_POWEROFF      = 'Poweroff'
COM_POWER         = 'Power'
COM_LOCATION      = 'Location'
COM_REMOTEON      = 'Remoteon'
COM_REMOTEOFF     = 'Remoteoff'
COM_CAMERA        = 'Camera'
COM_CALL          = 'Call'
COM_LOCK          = 'Lock'
COM_UNLOCK        = 'Unlock'
COM_TRACKON       = 'Trackon'
COM_TRACKOFF      = 'Trackoff'

# Email settings
# (only works for smtp access without secure authentication!)
EMAILADDRESS      = 'XXXXX@XXXXXXXXXXX.XX'
USER              = 'XXXXXXXX'
PASSWORD          = 'XXXXXXXX'
EMAILFROM         = 'XXXXXXXX@XXXXXX.XX'
MAILSERVER        = 'XXXX.XXXXXX.XX'
MAILPORT          = 25

# Reverse-ssh settings
REMOTEHOST        = 'XXXXXXXXXXX.XX'
REMOTEPORT        = 22
REMOTEUSER        = 'XXXXXXXXXXXXX'
REMOTEPASSWORD    = 'XXXXXXXXXX'

# Send acknowledge sms
# (send acknowledge sms after receiving valid sms command: 'yes' / 'no')
COMMANDREPLY      = 'no'

# Detect keyboard use
# (send acknowledge sms if keyboard is used: 'yes' / 'no')
KEYBOARDDETECT    = 'yes'

# Device lock
# (lock device after receiving valid sms command: 'yes' / 'no')
AUTODEVICELOCK    = 'no'

# Gps setings
# (if no gps coordinates acquired after 600 seconds then stop)
GPSTIMEOUT        = 600
# (number of gps coordinates to acquire and use the most accurate in "Location"-mode)
GPSPOLLING        = 4
# (time between sending coordinate sms in "Trackon"-mode: 10 / 20 / 30 / 60 / 120)
GPSINTERVAL       = 60
# (method to send gps coordinates: 'email' / 'sms')
GPSSEND           = 'email'

Options

The available options for SMSCON are:

Nokia-N900:~# smscon
== smscon v0.4.4 - Nokia N900 remote control utility ==
 Options:
  -start      : start smscon_daemon
  -stop       : stop smscon_daemon
  -status     : get smscon_daemon status
  -log        : show log file
  -del log    : erase log file
  -sms        : show sms commands
  -config     : show smscon_config file
  -help       : this help menu
 Special options:
  -boot       : start smscon_daemon at device boot
  -unboot     : remove start of smscon_daemon at device boot
  -reset      : factory default
  -imsi       : show imsi code file
  -del imsi   : delete smscon_code file
  -init       : create default smscon_config file
  -del config : delete smscon_config file

SMSCON is intended for people who have Python programming / Linux experience so you can adjust the script to their own needs.

After installation

After installation smscon will generate a new configuration file (/usr/bin/smscon_config) which you *must* edit to your own needs (i.e. change all "xxxxxxx"'s). A helper application, the SMSCON Editor, can assist in the configuration or you can directly edit the file using a text editor.

Warning: For editing the file directly use Putty / WinSCP on Windows for this. Don't use a standard Windows editor, this may break the config file!

SMSCON will also be installed to autoload at boot, this can be disabled with the command "smscon -unboot" and re-enabled by "smscon -boot".

The first time you start SMSCON (smscon -start) it loads the configured user settings file and is now active. smscon_daemon then stores your valid IMSI code in a file (/usr/bin/smscon_code) if the file doesn't exist. When later a new SIM card is inserted the new IMSI code is verified with the code in the stored file. This is the "SIM card change detect".

Nokia-N900:~# smscon -start
smscon_daemon started.

All user action and behavior of smscon_daemon will be logged in the log file:

Nokia-N900:/# smscon -log
SMSCON INFO: smscon_daemon is running (17-09-2010 00:29:14)
DAEMON INFO: succesfully loaded "smscon_config" file
DAEMON INFO: reading valid IMSI code (XXXXXXXXXXXXXXX) from file
DAEMON INFO: authorized IMSI code found
DAEMON INFO: smscon autoloads at boot

Remote SSH connection

When the (reverse-)SSH connection is made (default command 'Remoteon' / 'Remoteoff') you can from the server side (your own server) connect to your Nokia device with the following command:

ssh -p 8080 localhost -l root

Current version v0.4.4-5

  • FIX: ssh connection passfrase for authentication keys use added.
  • FIX: email sending works with or without secure authentication (tested with Google gmail).
  • NEW: COM_CHECK returns all valid SMSCON commands.
  • NEW: improved email smtp server handling.
  • Please test & report bugs!

Known Issues

v0.4.4-4

  • COM_REBOOT & COM_POWEROFF fails if changed. (confirmed by creator)
  • COM_CALL fails. (confirmed by creator)

v0.4.4-3

  • if default COM_REBOOT & COM_POWEROFF commands are changed command fails to execute (confirmed by Saturn) Fix in 0.4.4-4.

v0.4.4-2

  • dependancy list of SMSCON installer is incorrect (confirmed by creator)

v0.4.4-1

REMOVE PREVIOUS VERSION FROM NOKIA BEFORE USING 0.4.4-1 or higher (reason: major change in smscon_config file)!

  • smscon won't autoload at boot (confirmed by creator). Fix in 0.4.4-2.

v0.4.3

  • command "Trackon" is reported not to work (confirmed by creator)
  • smscon_daemon does not start at boot when requested (confirmed by creator)
  • sms commands cannot accept spaces (confirmed by creator)
  • smscon doesn't load at boot. (confirmed by creator)
  • "Trackon" (& "Trackoff") command doesn't work. (confirmed by creator)
  • bug in selecting the right GPS mode if GPRS data network is available (usage of AGPS (faster) or GPS (slower)). (confirmed by creator)
  • when using command "Location" GPRS data network is not automatically enabled.
  • GPSTIMEOUT routine doesn't work as expected/intended. (confirmed by creator)
  • when "Location" & "Trackon" commands are used, internal smscon events are discarted/hold until GPS is finished. (confirmed by creator)
  • discovered a initial GPS control design flaw in smscon. (confirmed by creator)

v0.4.2

  • the default number is replaced by every mail received and not only those requesting a command. (confirmed & fixed in version 0.4.3)

v0.4.1

  • command "Trackon" is reported not to work (confirmed)
  • Reply command sends duplicates (unconfirmed)

v0.4.0

  • will not work due to a typo in variable name (confirmed and fixed in version 0.4.1)

Future development ideas

Feel free to add requests below.

  • saving all smscon_config user variables in gconf database. No need for smscon_config file anymore.
  • only send camera picture (command "Camera") when keyboard slider is opened.
  • when sending test email (using GPRS data connection), previous connection state should be restored.
  • when SMSCON stops, Internet connection preference (Settings --> Internet connections) should be restored to previous state before running SMSCON.
  • extend setting GPSSEND to take option "both" (and not only sms or email).
  • add setting for user's country mobile number prefix.
  • add setting for alternative number (where alternative is a number sent a command and does not match the default) and option to choose where reply should be send, i.e. default number, alternative or both. Default number should not be replaced.
  • add setting to choose the default internet connection (WLAN, GPRS, or ANY). At the moment hardcoded to GPRS.
  • when the "Camera" command is sent, the process should wait for keyboard action to capture a picture and send the mail. In that way, there will be more chances to get better face portrait of the "new" user.

Testers needed

Please test this software, I like to hear if it works for you or not. I only could test it with two Vodafone SIM cards from The Netherlands, I want to know if it also works with other cards and networks in other countries...

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 only.

Disclaimer

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.