Use Cisco Spark to find wireless devices.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
externalapis
.DS_Store
.gitignore
Dockerfile
LICENSE
Procfile
README.md
config.py
requirements.txt
run.py
runtime.txt

README.md

Investigo

Investigo is Latin for track or trace out, investigate. Investigo is a bot for Spark, Cisco's unified communications service, which enables customers to use wireless infrastructure to locate Wi-Fi capable assets. The Investigo is a mash-up bot that uses several solutions: Spark, Tropo and Meraki wireless access points, spanning from the enterprise to the Internet of Things world.

Investigo architecture

Features

  • Track a specific wireless device using its name;

Quick Usage

  • Find the bot on Spark using its email: investigo@sparkbot.io
  • Start a 1:1 conversation with Investigo on Cisco Spark and use the available commands.
  • There might be a delay on the first command you run (the server needs to be woken up)

Available commands on Spark:

  • list assets (provides a list of registered assets)
  • find asset name of the asset (locates the asset on the map)
  • find MAC Address (find a wireless device using its MAC address)
  • fix name of the asset (updates the MAC address of the asset to an address that is currently being seen on the network)
  • open (gives a link to the web console of the app)

Developer Mode

If you want to use it on your Meraki network, here are the steps:

  1. Spin up the server that will receive the location information from Meraki Dashboard. Follow the guide: https://github.com/meraki/scanning-api-app

  2. Download the code available at: https://github.com/rafael-carvalho/investigo-meraki

  3. Configure your server settings:

    • Install all libraries described on requirements.txt.
    • Make sure you have a PostgreSQL server running.
    • Make sure you change all environmental variables on the .env file:
      ADMIN_NAME=admin's name on Spark
      APP_SETTINGS=config.DevelopmentConfig
      DATABASE_URL=postgres://...
      NOTIFICATION_SMS_PHONE_NUMBER=+12345678900
      SECRET_KEY=changethis
      SHOW_WEB_LINK=True
      SPARK_TOKEN=get your token from https://developer.ciscospark.com 
      
  4. Run your server: python run.py

  5. This server needs to be accessible from the Internet. If you don't have a public IP:

    • You can use http://ngrok.com for to expose your localhost to the Internet.
    • Alternatively, you can host your app on Heroku. ProcFile provided on the github repository
  6. Go to your code and change web/externalapis/meraki/__init__.py to point to the server you created on step 1.

  7. Add a JSON file describing your location to the same folder as app/static/server_config/meraki/meraki-hq-san-francisco.json and change the file path on the same file of the previous step. Don't worry about the id's on this file.

  8. Setup the server:

    • Use a browser to go to your server's homepage: https://public-ip.com
    • Click settings on the top menu
    • Select cloud as your deployment mode
    • Add a cloud server
    • Use demo network
  9. Create a Spark webhook and point all messages to your public IP:

WARNING:

This solution is meant for educational/proof of concept purposes only. Any use of this tool is at your own risk. There is no guarantee that they have been thorough testing in a comparable environment and we are not responsible for any damage or data loss incurred with their use.